微信小程序实现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之水平横向滚动歌词同步的应用
May 07 Javascript
jQuery替换字符串(实例代码)
Nov 13 Javascript
js的回调函数详解
Jan 05 Javascript
jQuery表单美化插件jqTransform使用详解
Apr 12 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
Jan 18 Javascript
JS生成某个范围的随机数【四种情况详解】
Apr 20 Javascript
解决node.js安装包失败的几种方法
Sep 02 Javascript
js模拟支付宝密码输入框
Apr 11 Javascript
js实现canvas图片与img图片的相互转换的示例
Aug 31 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
Dec 07 Javascript
Nuxt.js实战和配置详解
Aug 05 Javascript
JavaScript实现指定数量的并发限制的示例代码
Mar 10 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
PHP 中的类
2006/10/09 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
任意位置显示html菜单
2007/02/01 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
javascript 数组操作详解
2015/01/29 Javascript
JavaScript学习笔记之ES6数组方法
2016/03/25 Javascript
原生js开发的日历插件
2017/02/04 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
关于Python面向对象编程的知识点总结
2017/02/14 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
Python变量类型知识点总结
2019/02/18 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
从numpy数组中取出满足条件的元素示例
2019/11/26 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
《两个铁球同时着地》教学反思
2014/02/13 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
党性教育心得体会
2014/09/03 职场文书
房地产营销活动策划方案
2014/09/15 职场文书
婚庆答谢词
2015/01/04 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP