微信小程序实现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 相关文章推荐
WEB高性能开发之疯狂的HTML压缩
Jun 19 Javascript
javascript函数以及基础写法100多条实用整理
Jan 13 Javascript
JavaScript转换二进制编码为ASCII码的方法
Apr 16 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
Sep 21 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
Mar 21 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 jQuery
node.js利用mongoose获取mongodb数据的格式化问题详解
Oct 06 Javascript
Angular5给组件本身的标签添加样式class的方法
Apr 07 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
Sep 01 Javascript
详解vue.js移动端配置flexible.js及注意事项
Apr 10 Javascript
微信小程序云开发 生成带参小程序码流程
May 18 Javascript
JQuery中的常用事件、对象属性与使用方法分析
Dec 23 jQuery
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
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
星际争霸任务指南——虫族
2020/03/04 星际争霸
PHP使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
php加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
Knockoutjs的环境搭建教程
2012/11/26 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
bootstrap table小案例
2016/10/21 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
2020/11/10 Javascript
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
Python3使用requests发闪存的方法
2016/05/11 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
python3中zip()函数使用详解
2018/06/29 Python
python实现双色球随机选号
2020/01/01 Python
J2EE包括哪些技术
2016/11/25 面试题
物流仓管员工作职责
2014/01/06 职场文书
法律顾问服务方案
2014/05/15 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
2015年党风廉政建设责任书
2015/01/29 职场文书
大学生自荐信范文
2015/03/05 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python