如何实现小程序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的tab切换 js原理
Apr 01 Javascript
Jquery 插件学习实例1 插件制作说明与tableUI优化
Apr 02 Javascript
JavaScript实现拼音排序的方法
Nov 20 Javascript
纯文字版返回顶端的js代码
Aug 01 Javascript
jQueryUI中的datepicker使用方法详解
May 25 Javascript
js中删除数组中的某一元素实例(无下标时)
Feb 28 Javascript
ES6新特性之解构、参数、模块和记号用法示例
Apr 01 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
Oct 12 Javascript
vue-router命名路由和编程式路由传参讲解
Jan 19 Javascript
axios如何取消重复无用的请求详解
Dec 15 Javascript
jquery将信息遍历到界面上实例代码
Jan 21 jQuery
es6函数之rest参数用法实例分析
Apr 18 Javascript
微信小程序结合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
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
找到了一篇jQuery与Prototype并存的冲突的解决方法
2007/08/29 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
JQuery中解决重复动画的方法
2016/10/17 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
AngularJS service之select下拉菜单效果
2017/07/28 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
基于vue.js中关于下拉框的值默认及绑定问题
2018/08/22 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
Python数据操作方法封装类实例
2017/06/23 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
什么是Python包的循环导入
2020/09/08 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
python中os.remove()用法及注意事项
2021/01/31 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
2021/03/04 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
白宫黑市官网:White House Black Market
2016/11/17 全球购物
人力资源部经理的岗位职责
2014/03/04 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
践行三严三实心得体会
2014/10/13 职场文书
教师节感谢信
2015/01/22 职场文书
教师节寄语2015
2015/03/23 职场文书
倡议书范文大全
2015/04/28 职场文书