微信小程序实现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 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
Mar 25 Javascript
Lua表达式和控制结构学习笔记
Dec 15 Javascript
Augularjs-起步详解
Jul 08 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
Aug 02 Javascript
JS实现简单的二元方程计算器功能示例
Jan 03 Javascript
JavaScript表单验证的两种实现方法
Feb 11 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
May 10 Javascript
vue表单数据交互提交演示教程
Nov 13 Javascript
vue-cli设置css不生效的解决方法
Feb 07 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
Feb 07 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
详解Vue之计算属性
Jun 20 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
世界收音机发展史
2021/03/01 无线电
一个用于MySQL的PHP XML类
2006/10/09 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
获取URL文件名后缀
2013/10/24 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
jQuery的框架介绍
2016/05/11 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
2016/12/02 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
记录一次websocket封装的过程
2020/11/23 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
python爬虫获取小区经纬度以及结构化地址
2018/12/30 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
公务员的自我鉴定
2013/10/26 职场文书
求职自荐信范文格式
2013/11/29 职场文书
物资采购管理制度
2015/08/06 职场文书
python tkinter实现定时关机
2021/04/21 Python
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android
Redis唯一ID生成器的实现
2022/07/07 Redis
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android