美文网首页
用swiper做的上下联动tab切换

用swiper做的上下联动tab切换

作者: 众生皆似尘埃啊 | 来源:发表于2019-04-29 21:21 被阅读0次

引用的swiper 3.4.2版本

html部分

        <div class="swiper-container swiper1">
            <div class="swiper-wrapper">
                <div class="swiper-slide active-nav">未完成订单</div>
                <div class="swiper-slide">已完成订单</div>
                <div class="swiper-slide">取消订单</div>
            </div>
        </div>
        <div class="swiper-container swiper2">
                <div class="swiper-wrapper">
                    <%-- 未完成订单 --%>
                    <div class="swiper-slide">
                        <div class="list_json">
                            <ul class="t_ul flex-max flex-hlr flex-sc">
                                <li class="l_li back_buy">出售</li>
                                <li class="c_li">
                                    <p>USDT</p>
                                    <p>2018-10-10 11:42:26</p>
                                </li>
                                <li class="r_li">请支付</li>
                            </ul>
                            <ul class="b_ul flex-max flex-hlr flex-sc">
                                <li>
                                    <p>价格(CNY)</p>
                                    <p>0.03</p>
                                </li>
                                <li>
                                    <p>交易数量</p>
                                    <p>1</p>
                                </li>
                                <li>
                                    <p>总金额(CNY)</p>
                                    <p>111</p>
                                </li>
                            </ul>
                            <div class="b_div">
                                <p>订单结束时间:2019-04-23 17:16:52</p>
                                <button type="button">确认支付</button>
                            </div>
                        </div>
                    </div>
                    <%-- 已完成订单 --%>
                    <div class="swiper-slide">
                        <div class="list_json">
                            <ul class="t_ul flex-max flex-hlr flex-sc">
                                <li class="l_li back_buy">出售</li>
                                <li class="c_li">
                                    <p>USDT</p>
                                    <p>2018-10-10 11:42:26</p>
                                </li>
                                <li class="r_li">请支付</li>
                            </ul>
                            <ul class="b_ul flex-max flex-hlr flex-sc">
                                <li>
                                    <p>价格(CNY)</p>
                                    <p>0.03</p>
                                </li>
                                <li>
                                    <p>交易数量</p>
                                    <p>1</p>
                                </li>
                                <li>
                                    <p>总金额(CNY)</p>
                                    <p>111</p>
                                </li>
                            </ul>
                            <div class="b_div">
                                <p>订单结束时间:2019-04-23 17:16:52</p>
                            </div>
                        </div>
                    </div>
                    <%-- 取消订单 --%>
                    <div class="swiper-slide">
                        <div class="kong_json">
                            <i class="img_sprites"></i>
                            <p>暂无更多数据</p>
                        </div>
                    </div>
                </div>
            </div>

css部分

.swiper1{
    background: white;
    margin: 1px 0;
    .swiper-wrapper{
      transition-duration: 0ms;
      transform: translate3d(0, 0px, 0px);
      .swiper-slide{
        padding: rem(9px) 0;
        color: #929292;
        text-align: center;
        font:{
          size: rem(14px);
          weight: 500;
        }
      }
      .active-nav{
        color: #3D7CFA;
        border-bottom: rem(2px) solid #3D7CFA;
      }
    }
  }
.swiper2{

}.swiper-wrapper{
      transition-duration: 0ms;
      transform: translate3d(0, 0px, 0px);
      .swiper-slide{
        .list_json{
          background: white;
          text-align: center;
          margin-bottom: rem(6px);
          .t_ul{
            height: rem(63px);
            position: relative;
            box-shadow:0px 1px 7px 0px rgba(0,0,0,0.05);
            overflow: hidden;
            .l_li{
              width: rem(150px);
              height: rem(24px);
              color: white;
              position: absolute;
              top: rem(12px);
              left: rem(-54px);
              transform: rotate(-46deg);
              font:{
                size: rem(14px);
                weight: 500;
              }
            }
            .c_li{
              margin: 0 auto;
              font:{
                size: rem(14px);
                weight: 500;
              }
              p:nth-child(1){
                color: #303030;
                span{
                  color: #929292;
                  font-size: rem(12px);
                  margin-left: rem(6px);
                }
              }
              p:nth-child(2){
                color: #838383;
              }
            }
            .r_li{
              position: absolute;
              right: rem(12px);
              top: rem(22px);
              font-size: rem(14px);
              a{
                color: #3D7CFA;
              }
            }
            .back_buy{
              background: #D60000;
            }
          }
          .b_ul{
            padding: rem(8px) rem(12px);
            font-size: rem(12px);
            li{
              width: 33.33%;
              p:nth-child(1){
                color: #929292;
                padding-bottom: rem(4px);
              }
            }
            li:nth-child(1){
              text-align: left;
            }
            li:nth-child(2){
              padding: 0 rem(8px);
            }
            li:nth-child(3){
              text-align: right;
            }
          }
          .b_div{
            text-align: center;
            border-top: 1px solid #FDFDFD;
            p{
              color: #6C6C6C;
              font-size: rem(12px);
              padding: rem(8px) 0 rem(10px);
            }
            button{
              margin-bottom: rem(8px);
              padding: 0 rem(36px);
              height: rem(30px);
              font-size: rem(14px);
              background: #3D7CFA;
              color: white;
              border: none;
              -webkit-border-radius: 2px;
              -moz-border-radius: 2px;
              border-radius: 2px;
            }
          }
        }
      }
    }

js部分

//tab切换
    var swiper1 = new Swiper('.swiper1',{
        watchSlidesProgress : true,
        watchSlidesVisibility : true,//如果开启了watchSlidesVisibility,则会在每个可见slide增加一个classname,默认为'swiper-slide-visible'
        slidesPerView : 3,//将tabs块儿平均分成几份
        /*点击了上面的滑块时,下面的内容区也跟着变化  若去掉后,拖动下面上面可继续移动*/
        onTap: function(){
            swiper2.slideTo( swiper1.clickedIndex)
        }
    })
    var swiper2 = new Swiper('.swiper2',{
        onSlideChangeStart: function(){
            updateNavPosition()
        }
    })
    function updateNavPosition(){
        //默认哪一块是被选中的状态
        $('.swiper1 .active-nav').removeClass('active-nav')
        var activeNav = $('.swiper1 .swiper-slide').eq(swiper2.activeIndex).addClass('active-nav');
        if (!activeNav.hasClass('swiper-slide-visible')) {
            if (activeNav.index()>swiper1.activeIndex) {
                var thumbsPerNav = Math.floor(swiper1.width/activeNav.width())-1
                swiper1.slideTo(activeNav.index()-thumbsPerNav)
            }
            else {
                swiper1.slideTo(activeNav.index())
            }
        }
    }

相关文章

网友评论

      本文标题:用swiper做的上下联动tab切换

      本文链接:https://www.haomeiwen.com/subject/eaaunqtx.html