如何实现小程序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 相关文章推荐
JavaScript 对象、函数和继承
Jul 07 Javascript
javascript Math.random()随机数函数
Nov 04 Javascript
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
Jun 18 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
Feb 14 Javascript
JS+CSS简单树形菜单实现方法
Sep 12 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
Aug 05 Javascript
JS返回顶部实例代码
Aug 09 Javascript
vue按需加载组件webpack require.ensure的方法
Dec 13 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 Javascript
超简单的微信小程序轮播图
Nov 22 Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 Javascript
vue使用vant中的checkbox实现全选功能
Nov 17 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语法(1)
2006/10/09 PHP
用PHP来写记数器(详细介绍)
2006/10/09 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
2011/04/18 PHP
JSON扫盲帖 JSON.as类教程
2009/02/16 Javascript
jquery 通过name快速取值示例
2014/01/24 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
JQuery球队选择实例
2015/05/18 Javascript
Jquery代码实现图片轮播效果(一)
2015/08/12 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
angular实现IM聊天图片发送实例
2017/05/08 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
简谈创建React Component的几种方式
2019/06/15 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
vue 输入电话号码自动按3-4-4分割功能的实现代码
2020/04/30 Javascript
Python通过poll实现异步IO的方法
2015/06/04 Python
Python 和 JS 有哪些相同之处
2017/11/23 Python
Python温度转换实例分析
2018/01/17 Python
python列表的增删改查实例代码
2018/01/30 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
Python bisect模块原理及常见实例
2020/06/17 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
荷兰皇家航空公司官方网站:KLM Royal Dutch Airlines
2017/12/07 全球购物
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
《雾凇》教学反思
2014/02/17 职场文书
先进单位事迹材料
2014/12/25 职场文书
中标通知书
2015/04/17 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
vue ref如何获取子组件属性值
2022/03/31 Vue.js