微信小程序实现滴滴导航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 相关文章推荐
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
Apr 13 Javascript
读jQuery之七 判断点击了鼠标哪个键的代码
Jun 21 Javascript
ECMAScript 创建自己的js类库
Nov 22 Javascript
修改file按钮的默认样式实现代码
Apr 23 Javascript
js实现下拉框选择要显示图片的方法
Feb 16 Javascript
浅谈js的html元素的父节点,子节点
Aug 06 Javascript
非常优秀的JS图片轮播插件Swiper的用法
Jan 03 Javascript
详解基于angular-cli配置代理解决跨域请求问题
Jul 05 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
Nov 24 Javascript
Angular Material Icon使用详解
Nov 07 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 jQuery
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
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&amp;MYSQL服务器配置说明
2006/10/09 PHP
mysql5详细安装教程
2007/01/15 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
用js实现随机返回数组的一个元素
2007/08/13 Javascript
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
python脚本当作Linux中的服务启动实现方法
2019/06/28 Python
python下载库的步骤方法
2019/10/12 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
市场营销专业个人求职信范文
2013/12/14 职场文书
《雨霖铃》听课反思
2014/02/13 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
环境卫生整治简报
2015/07/20 职场文书