微信小程序实现滴滴导航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 相关文章推荐
JTrackBar水平拖动效果
Jul 15 Javascript
SyntaxHighlighter代码加色使用方法
Sep 07 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
Jan 11 Javascript
JavaScript中创建对象和继承示例解读
Feb 12 Javascript
基于jquery和svg实现超炫酷的动画特效
Dec 09 Javascript
JavaScript学习笔记之JS事件对象
Jan 22 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
Sep 04 Javascript
JS中闭包的经典用法小结(2则示例)
Dec 28 Javascript
jQuery列表检索功能实现代码
Jul 17 jQuery
微信小程序之分享页面如何返回首页的示例
Mar 28 Javascript
swiper 自动图片无限轮播实现代码
May 21 Javascript
vue element 中的table动态渲染实现(动态表头)
Nov 21 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 curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
Extjs中RowExpander控件的默认展开问题示例探讨
2014/01/24 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
centos下更新Python版本的步骤
2013/02/12 Python
python中遍历文件的3个方法
2014/09/02 Python
Python脚本处理空格的方法
2016/08/08 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
django Admin文档生成器使用详解
2019/07/22 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
岗位竞聘书范文
2014/03/31 职场文书
培训研修方案
2014/06/06 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
教师工作表现自我评价
2015/03/05 职场文书
使用feign服务调用添加Header参数
2021/06/23 Java/Android