微信小程序实现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 XML和string相互转化实现代码
Jul 04 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
Sep 14 Javascript
用于deeplink的js方法(判断手机是否安装app)
Apr 02 Javascript
js从Cookies里面取值的简单实现
Jun 30 Javascript
jQuery树形下拉菜单特效代码分享
Aug 15 Javascript
js本地图片预览实现代码
Oct 09 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
Mar 01 Javascript
一文让你彻底搞清楚javascript中的require、import与export
Sep 24 Javascript
React Form组件的实现封装杂谈
May 07 Javascript
Vue 实现手动刷新组件的方法
Feb 19 Javascript
微信小程序的授权实现过程解析
Aug 02 Javascript
一篇文章了解正则表达式的替换技巧
Feb 24 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设计模式 Adapter(适配器模式)
2011/06/26 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
js实现的点击div区域外隐藏div区域
2014/06/30 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
python中的列表推导浅析
2014/04/26 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
Python开发的十个小贴士和技巧及长常犯错误
2018/09/27 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
python实现图片转字符小工具
2019/04/30 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
python绘制彩虹图
2019/12/16 Python
实现Python与STM32通信方式
2019/12/18 Python
python中adb有什么功能
2020/06/07 Python
css3发光搜索表单分享
2014/04/11 HTML / CSS
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
环境科学专业研究生求职信
2013/10/02 职场文书
高中校园广播稿
2014/01/11 职场文书
幼儿园教师考核制度
2014/02/01 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
golang 语言中错误处理机制
2021/08/30 Golang
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS