微信小程序实现tab左右切换效果


Posted in Javascript onNovember 15, 2020

本文实例为大家分享了微信小程序实现tab左右切换展示的具体代码,供大家参考,具体内容如下

分析

1、设置data-current属性用于:点击当前项时,通过点击事件swichNav中处理e.dataset.current取到点击的目标值。

2、swiper组件的current组件用于控制当前显示哪一页

3、swiper组件绑定change事件switchTab,通过e.detail.current拿到当前页

wxml:

<view class="record-box">
 <view class="nav">
  <scroll-view scroll-x="true" class="navbar-box" srcoll-left="{{navScrollLeft}}"
   srcoll-width-animation="{{true}}">
   <block wx:for="{{recordMain}}" wx:for-index="idx" wx:for-item="navItem" wx:key="idx">
    <view class="nav-item {{currentTab == idx ? 'text' : ''}}" data-current="{{idx}}" 
     bindtap="switchNav">
     <label>{{navItem.text}}</label>
    </view>
   </block>
  </scroll-view>
 </view>
</view>
------------------------------------------------
<view class="record-ft">
 <swiper class="tab-box" current="{{currentTab}}" duration="300" bindchange="switchTab">
  <swiper-item wx:for="{{[0,1,2,3]}}" wx:for-item="tabItem" wx:for-index="idx" wx:key="idx"
    class="tab-cnetent">
    <block wx:for="{{tabContent}}" wx:for-item="tabItem" wx:key=" ">
     <view class="padding-box" bindtap="navigateUrl" data-url="/pages/index/index">
      <view class="weui-list-box weui-main">
       <view class="weui-list-bd">
        <view class="img-box">
         <image src="{{tabItem}}" class="img" mode="widthFix"></image>
        </view>
       </view>
       <view class="weui-list-ft">
        <view class="weui-title">
         <view class="text-flow clamp-xs font-sm">{{tabItem.title}}</view>
         <view class="text">
          <laber>{{tabItem.text}}</laber>
          <laber>{{tabItem.text}}</laber>
         </view>
        </view>
        <view class="weui-cost">
         <view>¥<laber>{{tanItem.cost}}</laber></view>
        </view>
       </view>
      </view>
     </view>
    </block>
  </swiper-item>
 </swiper>
</view>

JS

Page ({
 const app = getApp()
 data: {
  recordMian: [
   {
    title: "插画艺术"
   },
   {
    title: "工艺作品"
   },
   {
    title: "服装艺术"
   },
   {
    title: "三维建模"
   },
  ],
  tabContent: [
   {
    title: "台灯卧室床头 简约现代书房 北欧宜家创意装饰个性圆球台灯床头灯",
    text: "台灯",
    cost: "1255",
    imgUrl: "http://img.weiye.me/zcimgdir/album/file_59b8f7b66ba7f.jpg",
   },
   {
    title: "雪域冰雪天地8寸牛乳芝士蛋糕",
    text: "蛋糕",
    cost: "15",
    imgUrl: "http://img.weiye.me/zcimgdir/album/file_59b8f7b66ba7f.jpg",
   },
  ],
  currentTab: 0,
  navScrollLeft: 0
 },
 // 事件处理函数
 onLoad: function() {
  // 控制record-box随鼠标切换调整位置
  if (app.globalData.userInfo) {
   this.setData({
    userInfo: app.globalData.userInfo,
    hasUserInfo: true
   })
   } else if (this.data.canIUse) {
    app.userInfoReadyCallback = res => {
     this.setData({
      userInfo: res.userInfo,
      hasUserInfo: true
     })
    }
   }
  else {
   wx.getUserInfo({
    success: res => {
     app.globalData.userInfo = res.userInfo
     this.setData({
      userInfo: res.userInfo,
      hasUserInfo: true
     })
    }
   })
  }
  wx.getSystemInfo({
   success: (res) => {
    this.setData({
     pixelRatio: res.pixelRatio,
     windowHeight: res.windowHeight,
     windowWidth: res.windowWidth
    })
   }
  })
 },
 // 滑动事件
 // 点击标题切换当前页时改变样式
 switchNav(event) {
  var cur = event.currentTarget.dataset.current;
  if (this.data.currentTab == cur) {
   return false;
  } else {
   this.setData({
    currentTab: cur
   })
  }
 },
 // 滚动切换标签样式 
 switchTab(event) {
  var cur = evnet.detail.current;
  var singeNavWidth = this.data.windowWidth / 5;
  this.setData({
   currentTab: cur,
   navScrollLeft: (cur - 2) * singleNavWidth
  });
 }
})

效果图:

微信小程序实现tab左右切换效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
Oct 14 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
Dec 22 Javascript
微信小程序 自定义对话框实例详解
Jan 20 Javascript
canvas 实现中国象棋
Feb 17 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
Mar 02 Javascript
JS数组去重(4种方法)
Mar 27 Javascript
HTML的select控件美化
Mar 27 Javascript
webpack学习教程之publicPath路径问题详解
Jun 17 Javascript
详解升级react-router 4 踩坑指南
Aug 14 Javascript
Vue组件的使用教程详解
Jan 05 Javascript
vue仿ios列表左划删除
Sep 26 Javascript
Element Steps步骤条的使用方法
Jul 26 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
Sep 11 #Javascript
vue项目中使用tinymce编辑器的步骤详解
Sep 11 #Javascript
VUE 实现滚动监听 导航栏置顶的方法
Sep 11 #Javascript
vue中的watch监听数据变化及watch中各属性的详解
Sep 11 #Javascript
vue axios数据请求get、post方法及实例详解
Sep 11 #Javascript
js监听html页面的上下滚动事件方法
Sep 11 #Javascript
vue 使用html2canvas将DOM转化为图片的方法
Sep 11 #Javascript
You might like
php字符串分割函数explode的实例代码
2013/02/07 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
Laravel监听数据库访问,打印SQL的例子
2019/10/24 PHP
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
vuejs如何配置less
2017/04/25 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
2018/04/27 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
python切换hosts文件代码示例
2013/12/31 Python
在Python中使用__slots__方法的详细教程
2015/04/28 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
tensorflow实现简单的卷积神经网络
2018/05/24 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
python如何快速生成时间戳
2020/07/21 Python
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
行政部总经理岗位职责
2014/01/04 职场文书
供用电专业求职信
2014/07/07 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python
浅谈Python响应式类库RxPy
2021/06/14 Python
美元符号 $
2022/02/17 杂记