微信小程序实现滴滴导航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 相关文章推荐
jQuery 源码分析笔记(3) Deferred机制
Jun 19 Javascript
js淡入淡出焦点图幻灯片效果代码分享
Sep 08 Javascript
学习JavaScript设计模式(封装)
Nov 26 Javascript
jQuery实现获取绑定自定义事件元素的方法
Dec 02 Javascript
IE8兼容Jquery.validate.js的问题
Dec 01 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Dec 14 Javascript
详解js的事件处理函数和动态创建html标记方法
Dec 16 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
Mar 15 Javascript
vue绑定设置属性的多种方式(5)
Aug 16 Javascript
angularjs自定义过滤器demo示例
Aug 24 Javascript
基于javascript实现碰撞检测
Mar 12 Javascript
js利用拖放实现添加删除
Aug 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的微信公众平台开发入门实例
2015/04/15 PHP
图片自动更新(说明)
2006/10/02 Javascript
用javascript实现画板的代码
2007/09/05 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
2016/03/28 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
JavaScript基础进阶之数组方法总结(推荐)
2017/09/04 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
Python IDLE入门简介
2017/12/08 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
python tkinter界面居中显示的方法
2018/10/11 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
OpenCV-Python 摄像头实时检测人脸代码实例
2019/04/30 Python
Python队列RabbitMQ 使用方法实例记录
2019/08/05 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
Python读取YAML文件过程详解
2019/12/30 Python
python操作yaml说明
2020/04/08 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
手工制作的豪华英式沙发和沙发床:Willow & Hall
2019/05/03 全球购物
优秀研究生自我鉴定
2013/12/04 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
后天观后感
2015/06/08 职场文书
MongoDB使用场景总结
2022/02/24 MongoDB