微信小程序实现tab左右切换效果

所属分类: 网络编程 / JavaScript 阅读数: 207
收藏 0 赞 0 分享

本文实例为大家分享了微信小程序实现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
  });
 }
})

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

jQuery控制input只能输入数字和两位小数的方法

这篇文章主要介绍了jQuery控制input只能输入数字和两位小数的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Vue模板语法中数据绑定的实例代码

这篇文章主要介绍了Vue模板语法中数据绑定的实例代码,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
收藏 0 赞 0 分享

详解 微信小程序开发框架(MINA)

小程序使用的是MINA框架,目的是通过简单、高效的方式让开发者可以在微信中开发具有原生App体验的服务。 这篇文章主要介绍了微信小程序开发框架(MINA),需要的朋友可以参考下
收藏 0 赞 0 分享

jQuery实现的点击显示隐藏下拉菜单功能完整示例

这篇文章主要介绍了jQuery实现的点击显示隐藏下拉菜单功能,结合完整实例形式分析了jQuery事件响应及页面元素属性动态操作简单实现技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

angular4应用中输入的最小值和最大值的方法

这篇文章主要介绍了angular4应用中输入的最小值和最大值的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

150行代码带你实现微信小程序中的数据侦听

在这篇文章中, 我将用150行代码, 手把手带你打造一个小程序也可以使用的侦听器,感兴趣的朋友跟随小编一起看看吧
收藏 0 赞 0 分享

javascript异步编程的六种方式总结

这篇文章主要介绍了javascript异步编程的六种方式总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

JS实现的自定义map方法示例

这篇文章主要介绍了JS实现的自定义map方法,结合实例形式分析了javascript自定义map相关的json数组定义、遍历、添加、删除、读取等相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

微信小程序云开发(数据库)详解

使用云开发开发微信小程序、小游戏,无需搭建服务器,这篇文章主要为大家详细介绍了微信小程序云开发数据库,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

JS简单数组排序操作示例【sort方法】

这篇文章主要介绍了JS简单数组排序操作,结合实例形式分析了javascript使用sort方法进行数组排序的相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多