首页 > 其他 > 详细

tab标签卡的顺滑切换

时间:2020-05-25 12:35:28      阅读:55      评论:0      收藏:0      [点我收藏+]
getRangList: function() {
    call.myRequest(‘/activity/club/user/v1/coin/good/zones‘, this.listSuc17, ‘GET‘);
},
listSuc17: function(data) {
    const item = [{
        name: ‘全部‘
    }]
    this.rangList = item.concat(data.value || [])
    this.setTabList()
}

重点代码:setTabList()

setTabList() {
    this.setLine()
},
setLine() {
  let linewidth
= 0
  let lineleft = 0
  this.getElementData(‘#tab_item‘, (data) => {
    let el
= data[this.currentIndex]
    if (el) {
      linewidth
= el.width / 2
      lineleft = el.width / 2 + (-data[0].left - 12) + el.left
      this.lineStyle = {
        width: linewidth
+ ‘px‘,
        transform:
‘translateX(‘ + lineleft + ‘px) translateX(-50%)‘,
        transitionDuration:
‘.3s‘
      } } }) }, // 获取元素 getElementData(el, callback) { uni.createSelectorQuery().in(this).selectAll(el).boundingClientRect().exec((data) => { callback(data[0]); }); }

 

dom部分

<view class="swiperbox">
   <scroll-view class="scroll-view_H" style="width: 100%;white-space: nowrap;" scroll-x="true" scroll-left="120">
       <view id="tab_list">
           <view v-for="(item, index) in rangList" :key="index" id="tab_item" @click="handleMenu(item, index)" class="scroll-view-item_H size_24 color333 weight500 inline t_center"
                         style="padding-right: 42upx;" :class="{ ‘active‘: currentIndex == index }">
               <view>{{item.name}}</view>
           </view>
       </view>
       <view class="underline" :style="{ width: lineStyle.width, transform: lineStyle.transform, transitionDuration: lineStyle.transitionDuration }"></view>
   </scroll-view>
</view>

tab标签卡的顺滑切换

原文:https://www.cnblogs.com/wurui-0922/p/12955811.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!