微信小程序实现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编写的第一人称射击游戏
Feb 25 Javascript
如何简单地用YUI做JavaScript动画
Mar 10 Javascript
js利用Array.splice实现Array的insert/remove
Jan 13 Javascript
js对象与打印对象分析比较
Apr 23 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
Apr 10 Javascript
JavaScript常用小技巧小结
Dec 29 Javascript
JavaScript仿静态分页实现方法
Aug 04 Javascript
jQuery编程中的一些核心方法简介
Aug 14 Javascript
Vue.js计算属性computed与watch(5)
Dec 09 Javascript
angular写一个列表的选择全选交互组件的示例
Jan 22 Javascript
vue实现给div绑定keyup的enter事件
Jul 31 Javascript
vue使用echarts图表自适应的几种解决方案
Dec 04 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 阴历-农历-转换类代码
2012/01/16 PHP
组合算法的PHP解答方法
2012/02/04 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
jquery的颜色选择插件实例代码
2008/10/02 Javascript
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
2009/02/04 Javascript
基于jQuery的js分页代码
2010/06/10 Javascript
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
js实现显示当前状态的导航效果代码
2015/08/28 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
详解JS中遍历语法的比较
2017/04/07 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
原生JS实现Ajax跨域请求flask响应内容
2017/10/24 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
Vue加载组件、动态加载组件的几种方式
2018/08/31 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
js里面的变量范围分享
2020/07/18 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
django初始化数据库的实例
2018/05/27 Python
python图像处理入门(一)
2019/04/04 Python
python实现日志按天分割
2019/07/22 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
医学生自荐信范文
2013/12/03 职场文书
幼儿园大班开学教师寄语
2014/04/03 职场文书
小学德育工作经验交流材料
2014/05/22 职场文书
优秀班集体申报材料
2014/12/25 职场文书
nginx前后端同域名配置的方法实现
2021/03/31 Servers