微信小程序实现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 相关文章推荐
原生JS操作网页给p元素添加onclick事件及表格隔行变色
Dec 01 Javascript
JavaScript基本语法学习教程
Jan 14 Javascript
jQuery获取checkbox选中的值
Jan 28 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
Dec 08 Javascript
js Canvas实现的日历时钟案例分享
Dec 25 Javascript
jQuery文字轮播特效
Feb 12 Javascript
静态页面实现 include 引入公用代码的示例
Sep 25 Javascript
微信小程序实现顶部下拉菜单栏
Nov 04 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
Aug 01 Javascript
JavaScript交换变量的常用方法小结【4种方法】
May 07 Javascript
2分钟实现一个Vue实时直播系统的示例代码
Jun 05 Javascript
jquery实现淡入淡出轮播图效果
Dec 13 jQuery
微信小程序实现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用户注册时常用的检验函数实例总结
2014/12/22 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
老生常谈PHP 文件写入和读取(必看篇)
2017/05/22 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
PHP实现简单的计算器
2020/08/28 PHP
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
easyui validatebox验证
2016/04/29 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
nodejs实现套接字服务功能详解
2018/06/21 NodeJs
vue+Element-ui实现分页效果实例代码详解
2018/12/10 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
Python自动调用IE打开某个网站的方法
2015/06/03 Python
Python自动登录126邮箱的方法
2015/07/10 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
基于pandas中expand的作用详解
2019/12/17 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
2015年安全生产责任书
2015/01/30 职场文书
请病假条范文
2015/08/17 职场文书
Html5生成验证码的示例代码
2021/05/10 Javascript
python 如何做一个识别率百分百的OCR
2021/05/29 Python
MySQL一劳永逸永久支持输入中文的方法实例
2022/08/05 MySQL