微信小程序实现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操作页面表格,元素的一些技巧
Feb 02 Javascript
IE6浏览器下resize事件被执行了多次解决方法
Dec 11 Javascript
用js判断页面是否加载完成实现代码
Dec 11 Javascript
利用jQuery实现可以编辑的表格
May 26 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
Aug 25 Javascript
vue select组件的使用与禁用实现代码
Apr 10 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
Aug 28 Javascript
详解vue-cli下ESlint 配置说明
Sep 03 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
Jul 29 Javascript
jquery传参及获取方式(两种方式)
Feb 13 jQuery
vue 导出文件,携带请求头token操作
Sep 10 Javascript
在实例中重学JavaScript事件循环
Dec 03 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在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
Memcache 在PHP中的使用技巧
2010/02/08 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
javascript 命名规则 变量命名规则
2010/02/25 Javascript
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
浅谈js中的三种继承方式及其优缺点
2016/08/10 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
微信小程序动态添加分享数据
2017/06/14 Javascript
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
2019/09/25 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
Python的re模块正则表达式操作
2016/05/25 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
python实现飞机大战
2018/09/11 Python
pyqt远程批量执行Linux命令程序的方法
2019/02/14 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
python pyecharts 实现一个文件绘制多张图
2020/05/13 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
团日活动总结模板
2014/06/25 职场文书
谢师宴邀请函
2015/02/02 职场文书
2015年助残日活动总结
2015/03/27 职场文书
教你漂亮打印Pandas DataFrames和Series
2021/05/29 Python
python自动化八大定位元素讲解
2021/07/09 Python
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS