微信小程序实现tab和swiper切换结合效果


Posted in Javascript onJuly 17, 2020

本文实例为大家分享了小程序实现tab和swiper切换效果展示的具体代码,供大家参考,具体内容如下

先上效果图:

微信小程序实现tab和swiper切换结合效果

实现代码如下:

wxml页面

<scroll-view scroll-x="true" class="weui-navbar">
 <block wx:for-items="{{tabs}}">
 <view id="{{index}}" class="{{activeIndex == index ?'item_on':''}} default-item" bindtap="tabClick" style="width:{{tabW}}px">
 {{item}}
 </view>
 </block>
 <view class="weui-navbar-slider" style="transform:translateX({{slideOffset}}px);"></view>
</scroll-view>
<view class="rec" />
<swiper current="{{activeIndex}}" class="swiper-box" duration="100" bindchange="bindChange">
 <swiper-item class="swiper-item">
 <view class="slide-view">tab0</view>
 </swiper-item>
 <swiper-item class="swiper-item">
 <view class="slide-view">tab1</view>
 </swiper-item>
 <swiper-item class="swiper-item">
 <view class="slide-view">tab2</view>
 </swiper-item>
 <swiper-item class="swiper-item">
 <view class="slide-view">tab3</view>
 </swiper-item>
 <swiper-item class="swiper-item">
 <view class="slide-view">tab4</view>
 </swiper-item>
 <swiper-item class="swiper-item">
 <view class="slide-view">tab5</view>
 </swiper-item>
 <swiper-item class="swiper-item">
 <view class="slide-view">tab6</view>
 </swiper-item>
</swiper>

wxss样式:

page {
 height: 100%;
}
view , scroll-view{
 padding: 0px;
 margin: 0px;
}
.weui-navbar{
 width: 100%;
 position: fixed;
 border-bottom: 1px solid #00bba1;
 box-sizing: border-box;
 white-space: nowrap; 
 z-index: 100;
 background: white;
}
.rec{
 width: 100%;
 height: 7%;
}
.weui-navbar .default-item{
 /*width:25%;*/
 display: inline-block;
 text-align: center;
 font-size: 32rpx;
 box-sizing: border-box;
 height: 7%;
 padding-bottom: 20rpx;
}
.weui-navbar .item_on{
 color: #00bba1;
}
.weui-navbar-slider{
 position: absolute;
 width: 160rpx;
 height: 2px;
 content:"";
 background: #00bba1;
 bottom: 0px;
 left: 12.5rpx;
 transition: transform .3s;
}
.swiper-box{
 height: 900px;
 border-bottom: 1px solid #d1d1d1;
}
.swiper-box .swiper-item{
 text-align: center;
 padding-top: 200rpx;
 height: 100%;
}

js代码:

//index.js
//获取应用实例
var app = getApp();
var mtabW;
Page({
 data: {
 tabs:["综合与绘画","艺术喷漆","泥塑","纸面绘画","布面绘画","中国油画","水墨画"],
 activeIndex:0,
 slideOffset:0,
 tabW:0
 },
 //事件处理函数
 onLoad: function () {
 var that = this;
 wx.getSystemInfo({
  success: function (res) {
  mtabW = res.windowWidth / 4; //设置tab的宽度
  that.setData({
   tabW:mtabW
  })
  }
 });

 },
 bindViewTap: function() {
 wx.navigateTo({
 url: '../logs/logs'
 })
 },
 tabClick:function(e){
 var that = this;
 var idIndex = e.currentTarget.id;
 var offsetW = e.currentTarget.offsetLeft; //2种方法获取距离文档左边有多少距离
 this.setData({
 activeIndex:idIndex,
 slideOffset:offsetW
 });
 },
 bindChange:function(e){
 var current = e.detail.current;
 if((current+1)%4 == 0){

 }
 var offsetW = current * mtabW; //2种方法获取距离文档左边有多少距离
 this.setData({
  activeIndex:current,
  slideOffset:offsetW
 });

 }

})

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

Javascript 相关文章推荐
非常不错的一个javascript 类
Nov 07 Javascript
Javascript操纵Cookie实现购物车程序
Feb 15 Javascript
Auntion-TableSort国人写的一个javascript表格排序的东西
Nov 12 Javascript
YUI的Tab切换实现代码
Apr 11 Javascript
10个基于Jquery的幻灯片插件教程
Oct 29 Javascript
Linux下编译安装php libevent扩展实例
Feb 14 Javascript
详解AngularJS中module模块的导入导出
Dec 10 Javascript
JS设计模式之单例模式(一)
Sep 29 Javascript
js实现图片粘贴上传到服务器并展示的实例
Nov 08 Javascript
Node.js中sequelize时区的配置方法
Dec 10 Javascript
javascript中this的用法实践分析
Jul 29 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
Jul 19 Javascript
微信小程序实现tab切换效果
Nov 21 #Javascript
jQuery实现所有验证通过方可提交的表单验证
Nov 21 #jQuery
IntelliJ IDEA 安装vue开发插件的方法
Nov 21 #Javascript
值得收藏的vuejs安装教程
Nov 21 #Javascript
jquery-file-upload 文件上传带进度条效果
Nov 21 #jQuery
jquery ajaxfileupload异步上传插件
Nov 21 #jQuery
Vue + Vue-router 同名路由切换数据不更新的方法
Nov 20 #Javascript
You might like
PHP的引用详解
2015/02/22 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
javascript面向对象编程(一) 实例代码
2010/06/25 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
js 中的switch表达式使用示例
2020/06/03 Javascript
jquery iframe操作详细解析
2013/11/20 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
javascript消除window.close()的提示窗口
2015/05/20 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
2019/02/13 Javascript
JavaScript实现的九种排序算法
2019/03/04 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
python中while循环语句用法简单实例
2015/05/07 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Django实现组合搜索的方法示例
2018/01/23 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
Puppeteer使用示例详解
2019/06/20 Python
python批量图片处理简单示例
2019/08/06 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
Python中常用的os操作汇总
2020/11/05 Python
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
高级人员简历的自我评价分享
2013/11/03 职场文书
毕业生自我鉴定
2013/11/05 职场文书
施工安全协议书
2013/12/11 职场文书
新驾驶员个人自我评价
2014/01/03 职场文书
新年联欢会主持词
2014/03/27 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
委托书的写法
2014/08/30 职场文书
2019年教师节祝福语精选,给老师送上真诚的祝福
2019/09/09 职场文书