解决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 相关文章推荐
让iframe自适应高度(支持XHTML,支持FF)
Jul 24 Javascript
jQueryUI如何自定义组件实现代码
Nov 14 Javascript
js 金额文本框实现代码
Feb 14 Javascript
javaScript复制功能调用实现方案
Dec 13 Javascript
javascript复制粘贴与clipboardData的使用
Oct 16 Javascript
BootStrap实现带关闭按钮功能
Feb 15 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
Sep 19 Javascript
浅谈Angular4中常用管道
Sep 27 Javascript
详解nuxt sass全局变量(公共scss解决方案)
Jun 27 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
Jun 24 Javascript
在微信小程序中使用mqtt服务的方法
Dec 13 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
Mar 06 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 从数据库提取二进制图片的处理代码
2009/09/09 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
2019/09/02 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
python连接mysql实例分享
2016/10/09 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
python Crypto模块的安装与使用方法
2017/12/21 Python
django小技巧之html模板中调用对象属性或对象的方法
2018/11/30 Python
详解python中list的使用
2019/03/15 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
Python调用.NET库的方法步骤
2019/12/27 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
自我鉴定书范文
2013/10/02 职场文书
新闻记者个人求职的自我评价
2013/11/28 职场文书
小学生演讲稿
2014/01/12 职场文书
优秀教师事迹简介
2014/02/02 职场文书
卫生安全检查制度
2014/02/04 职场文书
六查六看自查报告
2014/10/14 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
青涩记忆观后感
2015/06/18 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers