微信小程序实现垂直tab标签页的切换及动态的选中下划线移动

注意:当前是纵向切换,横向切换请点击:横向切换tab

效果演示

代码片段

代码段链接如下:
纵向切换tab代码片段
可直接点击代码片段路径观看完整演示。

完整代码

wxml如下

<view class="cont" style="height: {{allHeight}}rpx;"><scroll-view class="lf" style="height: {{allHeight}}rpx;" scroll-y bindscroll="viewscroll" scroll-into-view="lf{{i}}" scroll-with-animation><view class="contline" style="top: {{conttop}}px;"></view><view class="item {{item.id == i ? 'active' : ''}}" wx:for="{{list}}" id="lf{{item.id}}" wx:key="index" data-id="{{item.id}}" bindtap="clicklf">{{item.name}}</view></scroll-view><swiper current="{{cate_id}}" vertical="{{true}}" class="swiper_cont"><swiper-item wx:for="{{list}}" item-id="{{item.id}}" wx:key="id"><scroll-view class="rf" style="height: {{allHeight}}rpx;" scroll-y enable-back-to-top='true' bindscrolltolower="loadmore" scroll-top="{{top}}">{{item.name}}</scroll-view></swiper-item></swiper>
</view>

wxss如下

page{ width: 100%; height: 100%;}
.cont{ display: flex; width:100%; height: 100%;}
.cont .swiper_cont{ flex: 1 1 0; height: 100%; overflow: hidden;}
.cont .swiper_cont swiper-item{ background-color: #FFAEC9;}
.cont .swiper_cont swiper-item:nth-child(2n){ background-color: #99D9EA;}
.cont .lf{width:165rpx;overflow:auto;font-size:28px;background:#EAECF1;-webkit-overflow-scrolling: touch}
.cont .lf .item{line-height:79rpx;text-align: center;color:#666;font-weight:normal;position:relative;font-size: 28rpx;}
.cont .lf .item.active{color:#000!important;background:#fff;font-weight:bold}
.cont .rf{flex:1 1 0; color: #fff; text-align: center; line-height: 180rpx; overflow:auto; -webkit-overflow-scrolling: touch}
.contline{width:5rpx;height:29rpx;background:#FF3742;position:absolute;left:0;top:25rpx;z-index:9;transition:all .8s}

js如下

Page({data: {list: [{ name: '热门', id: 0},{ name: '上衣女', id: 1},{ name: '上衣男', id: 2},{ name: 'T恤', id: 3},{ name: '短裙', id: 4},{ name: '长裙', id: 5},{ name: '连衣裙', id: 6},{ name: '夏季凉鞋', id: 7},{ name: '冬季短靴', id: 8},{ name: '包包饰品', id: 9},{ name: '休闲裤', id: 10},{ name: '西装', id: 11},],i: 0,id:null,top: 0,scrollTop: 0,page: 1,nomore: false,stopLoadingmoreTiem: false,},onLoad(){let _this = this;wx.getSystemInfo({success: function (res) {_this.setData({allHeight: res.windowHeight * 750 / res.windowWidth})}})},clicklf(e){let _this = this,i = e.currentTarget.dataset.id,lasttop = parseInt(_this.data.lasttop),scrollTop = parseInt(_this.data.scrollTop);this.setData({i: i,nomore: false,top: 0,id: i,cate_id: i})wx.createSelectorQuery().select('.cont .lf .item.active').boundingClientRect(rect => {_this.setData({conttop: rect.top + scrollTop + 12 - lasttop})}).exec()//在这里请求接口获取数据},viewscroll(e){this.setData({scrollTop: e.detail.scrollTop})},onShow: function () {let _this = this,lasttop = _this.data.lasttop;wx.createSelectorQuery().select('.cont .active').boundingClientRect(rect => {// console.log(rect);lasttop = rect.top;_this.setData({lasttop: lasttop})}).exec();}
})

微信小程序实现垂直tab标签页的切换及动态的选中下划线移动-纵向相关推荐

  1. 微信小程序中识别html标签的方法

    微信小程序中识别html标签的方法 前言 rich-text组件 前言 在后台接口返回的数据中有些会带有标签,在微信小程序中如何将其直接渲染在页面呢? rich-text组件 在微信小程序中有一个组件 ...

  2. 微信小程序点击tab栏切换,点击切换某个tab滚动到中间( uniapp )

    微信小程序点击tab栏切换,点击某个tab滚动到中间( uniapp ) 之前写过原生js的tab栏滚动到中间,正好最近有个uniapp小程序项目中要用到tab切换滚动, 写个demo发出来 + 注意 ...

  3. 微信小程序如何返回上一页的左上角小房子的坑

    微信小程序如何返回上一页的左上角小房子的坑 头一次写小程序,写了几个插件和几个页面,写完后发现返回上一页的时候是直接返回到首页了 出现这一问题的唯一线索就是左上角的小房子,点击小房子会直接退回到首页, ...

  4. uniapp微信小程序如何返回上一页的左上角小房子的坑

    微信小程序如何返回上一页的左上角小房子的坑 实际上出现的问题是我在跳转页面的时候选择了wx.relaunch(关闭所有页面,打开到应用内的某个页面),它出现的问题就是会出现小房子. 然后我就把跳转页面 ...

  5. 微信小程序 新闻列表及详情页

    微信小程序 新闻列表及详情页 页面效果 新闻列表 <view class="conatiner"><view class="news-item" ...

  6. 微信小程序 scroll-view组件实现列表页实例代码

    这篇文章主要介绍了微信小程序 scroll-view组件实现列表页实例代码的相关资料,scroll-view组件介绍scroll-view是微信小程序提供的可滚动视图组件,其主要作用是可以用来做手机端 ...

  7. 微信小程序中的Tab切换

    微信小程序中的Tab切换 使用步骤 使用步骤 代码如下(示例): 定义一个状态status data: {status: 0,}, 代码如下(示例): 在点击切换时利用status来切换根据index ...

  8. 微信小程序实战篇-商品详情页(二)

    今天要讲解商品详情页中sku的弹出选着框,这个涉及css动画样式,css动画是新的知识点,我们之前并没有接触过,请大家做好笔记,我们要做的效果是酱紫的~ 这个布局难点是需要绘制一个阴影背景.弹出的动画 ...

  9. 微信小程序仿抖音上下滑动整屏切换视频

    微信小程序仿抖音上下滑动整屏切换视频 使用官网上面的扩展组件 官方使用的方式: 可结合自己业务修改: 使用官网上面的扩展组件 https://developers.weixin.qq.com/mini ...

  10. 微信小程序研发问题梳理:翻页:下拉:缓存:canvas:富文本:分享

    微信小程序研发问题梳理 最近鼓捣小程序的时候,着实遇到了一些问题,尽管有些再翻看文档几遍,就能找到答案,但还是要发挥下烂笔头的功效,顺便梳理下. 问题列表 登录流程 小程序标签页地址无法跳转问题 页面 ...

最新文章

  1. VS2013在Windows7 64位上变慢的解决方法
  2. 总经费8.4亿的上海市脑科学重大专项进展如何?且看2019年度工作汇报会
  3. Blazor将.NET带回到浏览器
  4. 2018.11.09 codeforces487E. Tourists(tarjan+树链剖分)
  5. 使用ant执行Java代码
  6. 创建一个对象时,在一个类当中 静态代码块 和普通代码块构造方法 的顺序?
  7. Ruby on rails Mac开发 入门笔记(一)
  8. 软件测试薪资标准新鲜出炉,你达标了吗?
  9. 对轻量级C++日志类[转]
  10. 微型计算机系统视频适配器为,计算机硬件基础1-微型计算机系统组成(含教材6,8,9章内容).ppt...
  11. java算法按指定数量读取集合或数组中的值
  12. 全球软件无线电市场(SDR)标明到2020年的显著增量美元机会
  13. vue设置proxy代理,如何去查看代理地址
  14. Error处理: android.media.MediaRecorder.start(Native Method) 报错:start failed: -19【转】
  15. 软件测试是做什么的?好学的吗?
  16. Python Spider 的总结
  17. latex 包含于 包含
  18. ThreadLocal详解
  19. 文心一言打开f12后进入空白页面
  20. html怎么控制top值为0,关于vue滚动scrollTop 赋值一直为0问题

热门文章

  1. 阿里天池大数据竞赛——口碑商家客流量预测 A
  2. Mongodb下载、安装、配置与使用
  3. AIS (船舶自动识别系统Automatic Identification System)数据解析
  4. 计算机视觉各种需要了解的知识大杂烩
  5. 大众帕萨特卡尔福安卓智能车载导航评测
  6. Solidworks 课程大纲(虎课网)
  7. ubuntu qemu安装教程
  8. 校园一卡通管理信息系统的设计与实现(asp.net)
  9. Delphi 实现多国语言
  10. 10款平面设计软件锦集,“学废”一样都可独挡一面!