微信小程序实现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 相关文章推荐
jQuery学习4 浏览器的事件模型
Feb 07 Javascript
父子窗体间传递JSON格式的数据的代码
Dec 25 Javascript
smartcrop.js智能图片裁剪库
Oct 14 Javascript
ASP.NET jquery ajax传递参数的实例
Nov 02 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
Mar 04 Javascript
jQuery图片瀑布流的简单实现代码
Mar 15 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
Apr 17 jQuery
JS使用Dijkstra算法求解最短路径
Jan 17 Javascript
你知道JavaScript Symbol类型怎么用吗
Jan 08 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
Sep 22 Javascript
全网小程序接口请求封装实例代码
Nov 06 Javascript
浅谈JSON5解决了JSON的两大痛点
Dec 14 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学习 运算符与运算符优先级
2008/06/15 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
PHP微信PC二维码登陆的实现思路
2017/07/13 PHP
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
网站上面有这种切换效果
2006/06/26 Javascript
JavaScript 不只是脚本
2007/05/30 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
基于react组件之间的参数传递(详解)
2017/09/05 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
Python中使用PDB库调试程序
2015/04/05 Python
python中迭代器(iterator)用法实例分析
2015/04/29 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
Python定义函数时参数有默认值问题解决
2019/12/19 Python
Django values()和value_list()的使用
2020/03/31 Python
pycharm工具连接mysql数据库失败问题
2020/04/01 Python
Python json读写方式和字典相互转化
2020/04/18 Python
探索HTML5本地存储功能运用技巧
2016/03/02 HTML / CSS
品学兼优的大学生自我评价
2013/09/20 职场文书
化学教育专业求职信
2014/07/08 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
个人汇报材料范文
2014/12/30 职场文书
消防验收申请报告
2015/05/15 职场文书
孕妇病假条怎么写
2015/08/17 职场文书
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android