微信小程序实现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 控件事件小结
Oct 31 Javascript
jquery异步跨域访问代码
Jun 28 Javascript
如何设置一定时间内只能发送一次请求
Feb 28 Javascript
javascript结合ajax读取txt文件内容
Dec 05 Javascript
javascript等号运算符使用详解
Apr 16 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
Feb 18 Javascript
Vue.2.0.5过渡效果使用技巧
Mar 16 Javascript
用 js 的 selection range 操作选择区域内容和图片
Apr 18 Javascript
vue-cli之router基本使用方法详解
Oct 17 Javascript
深入浅析Vue中的 computed 和 watch
Jun 06 Javascript
Vue核心概念Getter的使用方法
Jan 18 Javascript
小谈angular ng deploy的实现
Apr 07 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
关于文本留言本的分页代码
2006/10/09 PHP
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
Laravel框架实现定时Task Scheduling例子
2019/10/22 PHP
Javascript注入技巧
2007/06/22 Javascript
jquery中对表单的基本操作代码
2010/07/29 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
jquery弹出遮掩层效果【附实例代码】
2016/04/28 Javascript
javascript this详细介绍
2016/09/19 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
Ionic2开发环境搭建教程
2020/08/20 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
[50:20]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第四局
2016/03/06 DOTA
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
分享6个隐藏的python功能
2017/12/07 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
Python求离散序列导数的示例
2019/07/10 Python
python nmap实现端口扫描器教程
2020/05/28 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
《桥》教学反思
2014/04/09 职场文书
机械操作工岗位职责
2014/08/08 职场文书
2014年创卫工作总结
2014/11/24 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript