如何实现小程序tab栏下划线动画效果


Posted in Javascript onMay 18, 2019

本文主要介绍了如何实现小程序tab栏下划线动画效果,分享给大家,具体如下:

最终效果

如何实现小程序tab栏下划线动画效果

实现

wxml

<view class='abox'>
  <view wx:for="{{title}}" class='{{currentIndex==index?"tabTrue":""}}' bindtap='changeTab' data-aa='{{index}}'>
   {{item}}
  
  </view>
  <view class='b' style="left:{{left}}px"></view>
</view>

wxss

.abox{
 display: flex;
 flex-direction: row;
 width: 100%;
 justify-content: space-around;
 position: relative;
 padding-bottom: 20rpx;
}

.tabTrue{
 color: red;
}
.b{
 background: red;
 height: 4rpx;
 width:64rpx;
 position: absolute;
 bottom: 0;
 transition: all .3s linear;
}

js

Page({
 data: {
  title: ["首页","掘金","思否","知乎"],
  currentIndex:"0",
  left:""
 },
 changeTab:function(e){
  //console.log(e)
  this.setData({
   currentIndex: e.currentTarget.dataset.aa
  })
  this.changeline(e)
  
 },
 changeline:function(){
  const query = wx.createSelectorQuery()
  var _this = this
  query.select('.tabTrue').boundingClientRect()
  query.exec(function (res) {
   _this.setData({
    left: res[0].left
   })
   //console.log(res[0].left)
  })
 },
 onLoad: function () {
  
  this.changeline(1)
  
 }
})

上面代码可以实现效果,这里面最重要的就是通过 changeTab方法获取有tabtrue这个class的标签,获取到标签的left值。

Javascript 相关文章推荐
JSON 学习之完全手册 图文
May 29 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
Feb 01 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
Jun 28 Javascript
JS实现简单的键盘打字的效果
Apr 24 Javascript
Google Maps基础及实例解析
Aug 06 Javascript
Vue.js系列之vue-router(上)(3)
Jan 03 Javascript
jQuery使用each遍历循环的方法
Sep 19 jQuery
在vue中使用echarts图表实例代码详解
Oct 22 Javascript
VSCode使用之Vue工程配置eslint
Apr 30 Javascript
JS实现判断数组是否包含某个元素示例
May 24 Javascript
JS深入学习之数组对象排序操作示例
May 01 Javascript
vue keep-alive的简单总结
Jan 25 Vue.js
微信小程序结合Storage实现搜索历史效果
May 18 #Javascript
Fetch超时设置与终止请求详解
May 18 #Javascript
微信小程序实现搜索历史功能
Mar 26 #Javascript
微信小程序云开发修改云数据库中的数据方法
May 18 #Javascript
小程序云开发教程如何使用云函数实现点赞功能
May 18 #Javascript
微信小程序实现元素渐入渐出动画效果封装方法
May 18 #Javascript
微信小程序收货地址API兼容低版本解决方法
May 18 #Javascript
You might like
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
php强制用户转向www域名的方法
2015/06/19 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
jquery实现简单的banner轮播效果【实例】
2016/03/30 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
fullpage.js最后一屏滚动方式
2018/02/06 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
python 容器总结整理
2017/04/04 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
python+pyqt5编写md5生成器
2019/03/18 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
python pyg2plot的原理知识点总结
2021/02/28 Python
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
韩国女装NO.1网店:STYLENANDA
2016/09/16 全球购物
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
最新销售员个人自荐信
2013/09/21 职场文书
机械工程系毕业生求职信
2013/09/27 职场文书
建筑安全生产责任书
2014/07/22 职场文书
学校端午节活动方案
2014/08/23 职场文书
2015教师节师德演讲稿
2015/03/19 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
财产分割协议书
2016/03/22 职场文书
Feign调用传输文件异常的解决
2021/06/24 Java/Android
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server