如何实现小程序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 相关文章推荐
最近项目写了一些js,水平有待提高
Jan 31 Javascript
图片动画横条广告带上下滚动的JS代码
Oct 25 Javascript
javascript右下角弹层及自动隐藏(自己编写)
Nov 20 Javascript
jquery选择器需要注意的问题
Nov 26 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
Mar 18 Javascript
深入理解$.each和$(selector).each
May 15 Javascript
jQuery插件扩展extend的简单实现原理
Jun 24 Javascript
js使用i18n实现页面国际化的方法
May 09 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
Sep 26 Javascript
vue使用vuex实现首页导航切换不同路由的方法
May 08 Javascript
详解vuex的简单todolist例子
Jul 14 Javascript
vue实现简单加法计算器
Oct 22 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
php中unserialize返回false的解决方法
2014/09/22 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
php强制用户转向www域名的方法
2015/06/19 PHP
PHP获取Exif缩略图的方法
2015/07/13 PHP
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
2007/04/12 Javascript
JS实现self的resend
2010/07/22 Javascript
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
python用10行代码实现对黄色图片的检测功能
2015/08/10 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
浅谈python编译pyc工程--导包问题解决
2019/03/20 Python
Python批量删除只保留最近几天table的代码实例
2019/04/01 Python
Django时区详解
2019/07/24 Python
python 实现让字典的value 成为列表
2019/12/16 Python
win10下python2和python3共存问题解决方法
2019/12/23 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
python matplotlib库的基本使用
2020/09/23 Python
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
竞选演讲稿范文
2013/12/28 职场文书
英语道歉信范文
2014/01/09 职场文书
车间机修工岗位职责
2014/02/28 职场文书
物理学专业自荐信
2014/06/11 职场文书
党建目标管理责任书
2014/07/25 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
Java集成swagger文档组件
2021/06/28 Java/Android
使用CSS连接数据库的方式
2022/02/28 HTML / CSS
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server