微信小程序顶部导航栏可滑动并选中放大


Posted in Javascript onDecember 05, 2019

这篇文章主要介绍了微信小程序顶部导航栏可滑动并选中放大,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

老规矩,先看效果图

微信小程序顶部导航栏可滑动并选中放大

可以看到我们实现了如下功能

  • 1,顶部导航栏
  • 2,可以左右滑动的导航栏
  • 3,选中条目放大

原理其实很简单,我这里把我研究后的源码发给大家吧。

wxml文件如下

<!-- 导航栏 -->
<scroll-view scroll-x class="navbar" scroll-with-animation scroll-left="{{scrollLeft}}rpx">
 <view class="nav-item" wx:for="{{tabs}}" wx:key="id" bindtap="tabSelect" data-id="{{index}}">
  <view class="nav-text {{index==tabCur?'tab-on':''}}">{{item.name}}</view>
 </view>
</scroll-view>

wxss文件如下

/* 导航栏布局相关 */
.navbar {
 width: 100%;
  height: 90rpx;
 /* 文本不换行 */
 white-space: nowrap;
 display: flex;
 box-sizing: border-box;
 border-bottom: 1rpx solid #eee;
 background: #fff;
 align-items: center;
 /* 固定在顶部 */
 position: fixed;
 left: 0rpx;
 top: 0rpx;
}

.nav-item {
 padding-left: 25rpx;
 padding-right: 25rpx;
 height: 100%;
 display: inline-block;
 /* 普通文字大小 */
 font-size: 28rpx;
}

.nav-text {
 width: 100%;
 height: 100%;
 display: flex;
 align-items: center;
 justify-content: center;
 letter-spacing: 4rpx;
 box-sizing: border-box;
}

.tab-on {
 color: #fbbd08;
 /* 选中放大 */
 font-size: 38rpx !important;
 font-weight: 600;
 border-bottom: 4rpx solid #fbbd08 !important;
}

js文件如下

// pages/test2/test2.js
Page({
 data: {
  tabCur: 0, //默认选中
  tabs: [{
    name: '等待支付',
    id: 0
   },
   {
    name: '待发货',
    id: 1
   },
   {
    name: '待收货',
    id: 2
   },
   {
    name: '待签字',
    id: 3
   },
   {
    name: '待评价',
    id: 4
   },
   {
    name: '五星好评',
    id: 5
   },
   {
    name: '差评订单',
    id: 6
   },
   {
    name: '编程小石头',
    id: 8
   },
   {
    name: '小石头',
    id: 9
   }
  ]

 },

 //选择条目
 tabSelect(e) {
  this.setData({
   tabCur: e.currentTarget.dataset.id,
   scrollLeft: (e.currentTarget.dataset.id - 2) * 200
  })
 }
})

代码里注释很明白了,大家自己跟着多敲几遍就可以了。

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

Javascript 相关文章推荐
checkbox 复选框不能为空
Jul 11 Javascript
js中 关于undefined和null的区别介绍
Apr 16 Javascript
通过遮罩层实现浮层DIV登录的js代码
Feb 07 Javascript
jquery实现当滑动到一定位置时固定效果
Jun 17 Javascript
使用原生js实现页面蒙灰(mask)效果示例代码
Jun 20 Javascript
javascript insertAfter()定义与用法示例
Jul 25 Javascript
JS获取input file绝对路径的方法(推荐)
Aug 02 Javascript
原生JS实现图片轮播效果
Dec 26 Javascript
使用vue中的混入mixin优化表单验证插件问题
Jul 02 Javascript
Moment.js实现多个同时倒计时
Aug 26 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
Jun 05 Javascript
实例讲解JavaScript 计时事件
Jul 04 Javascript
微信小程序实现点击按钮后修改颜色
Dec 05 #Javascript
React 父子组件通信的实现方法
Dec 05 #Javascript
Javascript中的this,bind和that使用实例
Dec 05 #Javascript
原生JS与CSS实现软件卸载对话框功能
Dec 05 #Javascript
Vue快速实现通用表单验证功能
Dec 05 #Javascript
Vue组件通信中非父子组件传值知识点总结
Dec 05 #Javascript
基于javascript实现贪吃蛇经典小游戏
Apr 10 #Javascript
You might like
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
图片自动缩小 点击放大
2008/07/07 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
Python最基本的输入输出详解
2015/04/25 Python
Python补齐字符串长度的实例
2018/11/15 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
基于Python fminunc 的替代方法
2020/02/29 Python
Python使用Pygame绘制时钟
2020/11/29 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
super()与this()的区别
2016/01/17 面试题
2019年c语言经典面试题目
2016/08/17 面试题
入党积极分子思想汇报范文
2014/01/05 职场文书
写给妈妈的道歉信
2014/01/11 职场文书
军训自我鉴定200字
2014/02/13 职场文书
高级编程求职信模板
2014/02/16 职场文书
娱乐节目策划方案
2014/06/10 职场文书
离职感谢信怎么写
2015/01/22 职场文书
和谐拯救危机观后感
2015/06/15 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
四十九个javascript小知识实用技巧
2021/11/20 Javascript
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server