解决vue的过渡动画无法正常实现问题


Posted in Javascript onOctober 31, 2019

前记:最近在写vue的一个项目要实现过渡的效果,虽然vue动画不是强项,库也多,但是基本的坑还是得踩扎实;

建议:先学习vue官方文档的进入/离开 & 列表过渡章节,那么我们来看bug;

首先上出现问题的代码

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <style type="text/css">
    .haha-leave-active {
     transition: opacity .5s;
    }
    .haha-leave-to /* .fade-leave-active below version 2.1.8 */ {
     opacity: 0;
    }
    #demo{
     position: relative;
     width: 200px;
     height: 200px;
     margin: auto;
     top: 100px;
    }
    .bug{
     position: relative;
     opacity: 1;
    }
  </style>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
</head>
<body>
  <div id="demo">
   <button v-on:click="show = !show">点击</button>
   <transition name="haha">
     <div class="bug" v-if="show">你好</div>
   </transition>
  </div>
  <script type="text/javascript">
    new Vue({
     el: '#demo',
     data: {
      show: true
     }
    })
  </script>
</body>
</html>

以上代码看起起来真的没有什么问题,但是复制粘贴发现过渡怎么变成了延迟,仔细阅读官方文档找不同,连连看;

我们要过度的属性是opacity,相对于官方文档我们在要过渡的div里多加了一个opacitry的属性值为1,这就导致其实整个动画过程中opacitry的值都为1而不会出现动画中由1到0的过渡;

导致这个问题的根本原因是因为css优先级的问题,div的css优先级远大于动画中css属性的优先级,所以opacity的值始终都是div中的值并不发生过渡变化;

那么解决的办法其一当然是去掉在div中的opacitry的值,从而使得只存在动画中的opacitry从而实现动画;

但是当div中的属性需要存在我们又需要过渡动画的时候,我们需要!important这尊大神去改变css的优先级;!important是使当前css的优先级达到最高当然important就是优先级最低;

来! 上正确的代码

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <style type="text/css">
    .haha-leave-active {
     transition: opacity .5s;
    }
    .haha-leave-to /* .fade-leave-active below version 2.1.8 */ {
     opacity: 0;
    }
    #demo{
     position: relative;
     width: 200px;
     height: 200px;
     margin: auto;
     top: 100px;
    }
    .bug{
     position: relative;
     opacity: 1 important;
    }
  </style>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
</head>
<body>
  <div id="demo">
   <button v-on:click="show = !show">点击</button>
   <transition name="haha">
     <div class="bug" v-if="show">你好</div>
   </transition>
  </div>
  <script type="text/javascript">
    new Vue({
     el: '#demo',
     data: {
      show: true
     }
    })
  </script>
</body>
</html>

这样就既可以实现过渡效果也不拆去div中优先级较高的css属性

以上这篇解决vue的过渡动画无法正常实现问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
找到一点可怜的关于dojo资料,谢谢作者!
Dec 06 Javascript
JS中类或对象的定义说明
Mar 10 Javascript
JS图片自动轮换效果实现思路附截图
Apr 30 Javascript
JavaScript中数据结构与算法(二):队列
Jun 19 Javascript
js带缩略图的图片轮播效果代码分享
Sep 14 Javascript
JavaScript常用正则函数用法示例
Jan 23 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
Feb 15 Javascript
angular2路由切换改变页面title的示例代码
Aug 23 Javascript
详解Element 指令clickoutside源码分析
Feb 15 Javascript
微信小程序云开发之新手环境配置
May 16 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
May 27 Javascript
javascript拖曳互换div的位置实现示例
Jun 28 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 #Javascript
js new Date()实例测试
Oct 31 #Javascript
一起写一个即插即用的Vue Loading插件实现
Oct 31 #Javascript
Vue 使用beforeEach实现登录状态检查功能
Oct 31 #Javascript
vue路由切换之淡入淡出的简单实现
Oct 31 #Javascript
vue-router之实现导航切换过渡动画效果
Oct 31 #Javascript
使用vue-router切换页面时实现设置过渡动画
Oct 31 #Javascript
You might like
php文件上传类的分享
2017/07/06 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
Javascript 学习笔记 错误处理
2009/07/30 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
jQuery 实现双击编辑表格功能
2017/06/19 jQuery
iscroll实现下拉刷新功能
2017/07/18 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
简单了解python单例模式的几种写法
2019/07/01 Python
python hough变换检测直线的实现方法
2019/07/12 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
UML设计模式笔试题
2014/06/07 面试题
加工操作管理制度
2014/01/19 职场文书
2014年底个人工作总结
2015/03/10 职场文书
家装业务员岗位职责
2015/04/03 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers