解决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 相关文章推荐
firefox浏览器下javascript 拖动层效果与原理分析代码
Dec 04 Javascript
基于jquery的多功能软键盘插件
Jul 25 Javascript
jquery怎样实现ajax联动框(二)
Mar 08 Javascript
基于javascript实现彩票随机数生成(升级版)
Apr 17 Javascript
jQuery实现根据滚动条位置加载相应内容功能
Jul 18 Javascript
js实现下拉框效果(select)
Mar 28 Javascript
JavaScript实现精美个性导航栏筋斗云效果
Oct 29 Javascript
从零开始最小实现react服务器渲染详解
Jan 26 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
Mar 12 Javascript
JS实现贪吃蛇游戏
Nov 15 Javascript
electron踩坑之dialog中的callback解决
Oct 06 Javascript
js前端对于大量数据的展示方式及处理方法
Dec 02 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
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
2016/06/13 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
2018/03/08 Javascript
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
2018/10/25 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
js轮播图之旋转木马效果
2020/10/13 Javascript
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
Python中字典映射类型的学习教程
2015/08/20 Python
python的pip安装以及使用教程
2018/09/18 Python
python多线程下信号处理程序示例
2019/05/31 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
python实现统计代码行数的小工具
2019/09/19 Python
Python for循环及基础用法详解
2019/11/08 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
python将音频进行变速的操作方法
2020/04/08 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
卡西欧B级产品官方网站:Casio Outlet
2018/05/22 全球购物
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
餐饮业的创业计划书范文
2013/12/26 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
微信小程序和php的登录实现
2021/04/01 PHP
Vue操作Storage本地化存储
2022/04/29 Vue.js