微信小程序实现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中的立即执行函数(function(){…})()
Jun 12 Javascript
Node.js中创建和管理外部进程详解
Aug 16 Javascript
JS实现转动随机数抽奖特效代码
Apr 16 Javascript
Javascript数组Array基础介绍
Mar 13 Javascript
如何检测JavaScript的各种类型
Jul 30 Javascript
详解Javascript函数声明与递归调用
Oct 22 Javascript
Jquery删除css属性的简单方法
Dec 04 Javascript
jQuery文字轮播特效
Feb 12 Javascript
在vue中使用vue-echarts-v3的实例代码
Sep 13 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
May 13 Javascript
vue实现信息管理系统
May 30 Javascript
React服务端渲染原理解析与实践
Mar 04 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
默默简单的写了一个模板引擎
2007/01/02 PHP
php操作xml入门之xml基本介绍及xml标签元素
2015/01/23 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
js全屏显示显示代码的三种方法
2013/11/11 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
node.js中watch机制详解
2014/11/17 Javascript
JS实现点击上移下移LI行数据的方法
2015/08/05 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
解决vue props 拿不到值的问题
2018/09/11 Javascript
详解react-refetch的使用小例子
2019/02/15 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
pycharm 配置远程解释器的方法
2018/10/28 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
python如何把字符串类型list转换成list
2020/02/18 Python
python 实现两个线程交替执行
2020/05/02 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
销售部主管岗位职责
2013/12/18 职场文书
高中微机老师自我鉴定
2014/02/16 职场文书
班级德育工作实施方案
2014/02/21 职场文书
会员活动策划方案
2014/08/19 职场文书
公司表扬稿范文
2015/05/05 职场文书