微信小程序实现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中的Window窗口对象
Jan 16 Javascript
jQuery之自动完成组件的深入解析
Jun 19 Javascript
简单实用的反馈表单无刷新提交带验证
Nov 15 Javascript
原生javascript实现简单的datagrid数据表格
Jan 02 Javascript
深入分析JSON编码格式提交表单数据
Jun 25 Javascript
JavaScript中的继承之类继承
May 01 Javascript
jQuery Mobile中的button按钮组件基础使用教程
May 23 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
Jul 01 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
May 02 Javascript
JavaScript模块模式实例详解
Oct 25 Javascript
p5.js入门教程之图片加载
Mar 20 Javascript
详解Vue的mixin策略
Nov 19 Vue.js
微信小程序实现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无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
php实现paypal 授权登录
2015/05/28 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
jquery validate poshytip 自定义样式
2012/11/26 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
js从Cookies里面取值的简单实现
2014/06/30 Javascript
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
浅谈JavaScript的函数及作用域
2016/12/30 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
详解各版本React路由的跳转的方法
2018/05/10 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
详解vue中this.$emit()的返回值是什么
2019/04/07 Javascript
AJAX XMLHttpRequest对象创建使用详解
2020/08/20 Javascript
用js实现放大镜效果
2020/10/28 Javascript
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
Python爬虫实现模拟点击动态页面
2020/03/05 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
2020/05/03 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
Python调用ffmpeg开源视频处理库,批量处理视频
2020/11/16 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
教师队伍管理制度
2014/01/14 职场文书
机关作风建设自查报告
2014/10/22 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL