微信小程序实现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 相关文章推荐
HTML中事件触发列表与解说
Jul 09 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
Mar 18 Javascript
从零开始学习jQuery (六) jquery中的AJAX使用
Feb 23 Javascript
jquery图片上下tab切换效果
Mar 18 Javascript
JQuery在页面中添加和除移DOM示例代码
Jun 24 Javascript
AngularJS基础 ng-mouseover 指令简单示例
Aug 02 Javascript
Angularjs之filter过滤器(推荐)
Nov 27 Javascript
JS实现JSON.stringify的实例代码讲解
Feb 07 Javascript
vue ssr 指南详读
Jun 29 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
Jul 12 jQuery
详解Vue结合后台的列表增删改案例
Aug 21 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
Apr 17 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编写的导航条程序
2006/10/09 PHP
php如何连接sql server
2015/10/16 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
js一组验证函数
2008/12/20 Javascript
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
js字符串转成JSON
2013/11/07 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
微信小程序前端源码逻辑和工作流
2016/09/25 Javascript
AngularJS开发教程之控制器之间的通信方法分析
2016/12/25 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
JavaScript canvas实现跟随鼠标移动小球
2021/02/09 Javascript
Python实现的简单发送邮件脚本分享
2014/11/07 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
python复制文件到指定目录的实例
2018/04/27 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
python简单实现AES加密和解密
2019/03/28 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
西安当代医院管理研究院笔试题
2015/12/11 面试题
大学生职业生涯规划书模版
2013/12/30 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
2014年村委会工作总结
2014/11/24 职场文书
公司财务部岗位职责
2015/04/14 职场文书
2016年元旦致辞
2015/08/01 职场文书
合作合同协议书
2016/03/21 职场文书
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android