字节(抖音)小程序,菜单栏点击后自动滚动居中

遇事不决先搜索,搜出一小队文章,并在里面刨了半天后,开始动手,从别人文章借鉴(抄袭)的代码,修改半天还是实现不了,而且无用代码一大堆,无奈只能把官方的例子拉到开发者工具里面,写一个简单的用例,再将他应用到我的小程序里面,最后发现居然如此简单。。。

废话说够了,先上效果图:

环境:字节跳动开发者工具v3.3.8

设备:模拟器 iPhone6/7/8/SE

具体实现代码:

.ttml文件,video是自己的菜单列表

<scroll-view class="rank" scroll-x="true" style="width: 100%" scroll-left="{{scroll_left}}" scroll-with-animation="true">
        <view class="{{nowMenuIndex == index?'rankTrue':''}}" tt:for="{{videoMenu}}" tt:for-item="item" bindtap="menuChange" data-index="{{index}}" data-id="{{item.id}}">{{item.name}}</view>
</scroll-view>    

.ttss文件

.rank{
    margin: 10px auto;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    overflow-x: scroll;
}

.rank view{
    display: inline-block;
    width: 200rpx;
    background-color: #343740;
    border-radius: 0px;
    font-size: 35rpx;
    font-weight: 600;
    color: #EBE7ED;
    padding: 8px 0;
    margin-right: 1px;
}
.rankTrue{
    background-color: #343740; 
    border: 1px solid #5E5E68; 
    padding: -1px
}

.js文件

 menuChange(e){
    this.setData({nowMenuIndex: e.currentTarget.dataset.index})
    this.setData({
      category: e.currentTarget.dataset.id,
    })
    var menuList = this.data.videoMenu
    menuList.forEach((item, index) => {
      if (item.id === this.data.category) {
        this.setData({
          scroll_left: 100 * index-135
        })
      }
    })
},

 菜单列表数据(在data里面),例子(实际开发中是从接口获取的):

menu:[
      {id:1,name:"111"},
      {id:2,name:"222"},
      {id:3,name:"333"},
      {id:4,name:"444"},
      {id:5,name:"555"},
      {id:6,name:"666"},
    ]

所需变量(在data里面):

videoMenu: "", //菜单
category: 1, //分类,我这里默认选中菜单1
scroll_left: 0, // 设置滚动条距离左边的位置。

 如果对你产生了帮助,点赞收藏,下次翻看不迷路

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lemuzhi_零度

作者幸苦,犒劳一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值