如何实现小程序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 相关文章推荐
jQuery实现不断闪烁文字的方法
May 15 Javascript
JavaScript中的Function函数
Aug 27 Javascript
浅谈JavaScript 标准对象
Jun 02 Javascript
Bootstrap CSS布局之表单
Dec 17 Javascript
微信小程序 支付功能开发错误总结
Feb 21 Javascript
vue中如何引入jQuery和Bootstrap
Apr 10 jQuery
vue2.X组件学习心得(新手必看篇)
Jul 05 Javascript
详解如何为你的angular app构建一个第三方库
Dec 07 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
Feb 19 Javascript
详细分析vue表单数据的绑定
Jul 20 Javascript
Element Collapse 折叠面板的使用方法
Jul 26 Javascript
如何在VUE中使用vue-awesome-swiper
Jan 04 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
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
js获取内联样式的方法
2015/01/27 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
Python 返回汉字的汉语拼音
2009/02/27 Python
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
python pandas修改列属性的方法详解
2018/06/09 Python
Django 路由系统URLconf的使用
2018/10/11 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
设计师珠宝:Ylang 23
2018/05/11 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
三年大学生活自我鉴定
2014/01/21 职场文书
《雾凇》教学反思
2014/02/17 职场文书
领导调研接待方案
2014/02/27 职场文书
工程管理英文求职信
2014/03/18 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
横空出世观后感
2015/06/09 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers