微信小程序实现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 Array扩展实现代码
Oct 14 Javascript
jQuery实现的一个自定义Placeholder属性插件
Aug 11 Javascript
简介JavaScript中的unshift()方法的使用
Jun 09 Javascript
JavaScript基础知识点归纳(推荐)
Jul 09 Javascript
angular ngClick阻止冒泡使用默认行为的方法
Nov 03 Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
Mar 29 Javascript
借助node实战JSONP跨域实例
Mar 30 Javascript
axios使用拦截器统一处理所有的http请求的方法
Nov 02 Javascript
js生成1到100的随机数最简单的实现方法
Feb 07 Javascript
JavaScript实现简单图片切换
Apr 29 Javascript
JS函数式编程实现XDM一
Jun 16 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 编写大型网站问题集
2010/05/07 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
PHP实现阿里大鱼短信验证的实例代码
2017/07/10 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
JavaScript实现身份证验证代码
2016/02/17 Javascript
BootStrap智能表单demo示例详解
2016/06/13 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
vue实现app页面切换动画效果实例
2017/05/23 Javascript
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
深入Python函数编程的一些特性
2015/04/13 Python
举例讲解Python常用模块
2019/03/08 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
python list多级排序知识点总结
2019/10/23 Python
Python调用百度OCR实现图片文字识别的示例代码
2020/07/17 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
证券期货行业个人的自我评价
2013/12/26 职场文书
计算机专业毕业生自荐信
2013/12/31 职场文书
治庸问责心得体会
2014/09/12 职场文书
擅自离岗检讨书
2014/09/12 职场文书
给老婆的检讨书
2015/01/27 职场文书
中秋节感想
2015/08/10 职场文书
MySQL系列之开篇 MySQL关系型数据库基础概念
2021/07/02 MySQL