微信小程序实现滴滴导航tab切换效果


Posted in Javascript onJuly 24, 2018

本文实例为大家分享了微信小程序实现tab切换效果的具体代码,供大家参考,具体内容如下

效果图如下: (请自动忽视底部tab.....)

 微信小程序实现滴滴导航tab切换效果

简单介绍一下:顶部导航使用 scroll-view 组件 中间的内容部分使用 swiper 组件

实现的逻辑就是: 先这样在这样,这样然后那样。(此处省略200个字)。

代码如下,复制可用

wxml

<view class="contain">
 <!-- 导航栏 -->
 <scroll-view class="tab" scroll-x scroll-left="{{tabScroll}}" scroll-with-animation="true">
 <block wx:for="{{menuList}}" wx:key="index">
  <view class="tab-item {{currentTab == index ? 'active' : ''}}" data-current="{{index}}" bindtap='clickMenu'>{{item.name}}</view>
 </block>
 </scroll-view>
 <!-- 页面 -->
 <swiper class="content" style='height: {{height}}px' duration="1000" current="{{currentTab}}" bindchange="changeContent">
 <swiper-item class="content-item" wx:for="{{menuList}}" wx:key="index">这里是{{item.name}}</swiper-item>
 </swiper>
</view>

js

Page({
 data: {
 menuList: [{
  name: "快车"
 }, {
  name: "顺风车"
 }, {
  name: "外卖"
 }, {
  name: "单车"
 }, {
  name: "礼橙专车"
 }, {
  name: "出租车"
 }, {
  name: "公交"
 }, {
  name: "代驾"
 }, {
  name: "豪华车"
 }, {
  name: "自驾租车"
 }, {
  name: "拼车"
 }, {
  name: "二手车"
 }],
 tabScroll: 0,
 currentTab: 0,
 windowHeight: '',
 windowWidth: ''
 },
 onLoad: function() { 
 wx.getSystemInfo({  // 获取当前设备的宽高,文档有
  success: (res) => { 
  this.setData({
   windowHeight: res.windowHeight,
   windowWidth: res.windowWidth
  })
  },
 })
 },
 onReady: function() {
 wx.setNavigationBarTitle({ //修改标题文字
  title: ''
 })
 },
 clickMenu: function(e) {
 var current = e.currentTarget.dataset.current //获取当前tab的index
 var tabWidth = this.data.windowWidth / 5 // 导航tab共5个,获取一个的宽度
 this.setData({
  tabScroll: (current - 2) * tabWidth //使点击的tab始终在居中位置
 }) 
 if (this.data.currentTab == current) {
  return false
 } else {
  this.setData({currentTab: current })
 }
 },
 changeContent: function(e) {
 var current = e.detail.current // 获取当前内容所在index,文档有
 var tabWidth = this.data.windowWidth / 5 
 this.setData({
  currentTab: current,
  tabScroll: (current - 2) * tabWidth
 })
 }
})

css 

.contain{
 width: 100%;
 height: 100%;
}
.tab{
 width: 100%;
 height: 100rpx;
 position: fixed;
 top: 0;
 left: 0;
 z-index: 100;
 white-space: nowrap;
 box-sizing: border-box;
 overflow: hidden;
 line-height: 100rpx;
 
}
.tab-item{
 display: inline-block;
 width: 20%;
 text-align: center;
 font-size: 14px;
 color: #8f9193;
}
.active{
 color: #ff502c
}
.content{
 padding-top: 100rpx;
 box-sizing: border-box;
 text-align: center;
 font-size: 14px;
}
.content-item{
 overflow-y: scroll
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中OnLoad几种使用方法
Dec 15 Javascript
JavaScript数组和循环详解
Apr 27 Javascript
jQuery判断浏览器并动态调整select宽度的方法
Mar 02 Javascript
深入理解JavaScript中的对象复制(Object Clone)
May 18 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
May 20 Javascript
js替换字符串中所有指定的字符(实现代码)
Aug 17 Javascript
微信小程序 欢迎界面开发的实例详解
Nov 30 Javascript
原生js和css实现图片轮播效果
Feb 07 Javascript
JS中去掉array中重复元素的方法
May 26 Javascript
详解Node项目部署到云服务器上
Jul 12 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
Oct 19 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
Jul 27 Javascript
JavaScript引用类型Array实例分析
Jul 24 #Javascript
详解微信小程序调起键盘性能优化
Jul 24 #Javascript
原生JavaScript实现remove()和recover()功能示例
Jul 24 #Javascript
js+canvas实现验证码功能
Sep 21 #Javascript
微信小程序网络请求封装示例
Jul 24 #Javascript
js实现敏感词过滤算法及实现逻辑
Jul 24 #Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
Jul 24 #jQuery
You might like
PHP中的reflection反射机制测试例子
2014/08/05 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
2015/09/02 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
JS实现图片剪裁并预览效果
2016/08/12 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
2018/10/26 Javascript
nodejs对项目下所有空文件夹创建gitkeep的方法
2019/08/02 NodeJs
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
利用Python实现颜色色值转换的小工具
2016/10/27 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
实例讲解Python爬取网页数据
2018/07/08 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
python找出因数与质因数的方法
2019/07/25 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
python获取linux系统信息的三种方法
2020/10/14 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
Footshop法国:购买运动鞋
2020/01/19 全球购物
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
医学院学生的自我评价分享
2013/11/19 职场文书
暑期实践思想汇报
2014/01/06 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
成立公司计划书
2014/05/07 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
小学见习报告
2015/06/23 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android