| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 理解v-enter 与v-leave 周期与范围,vue的过渡动画 -> 正文阅读 |
|
[JavaScript知识库]理解v-enter 与v-leave 周期与范围,vue的过渡动画 |
同时在学习过程中解决了一些疑问,也在这里分享给大家~ 目录 一、vue怎么实现单组件/元素的过渡动画在这我有了第一个问题 当我们在界面上操作时。我们鼠标也就是做了一次点击而已,vue是怎么判断元素是插入还是移除呢? ?这个问题在官网上很快有了解答
vue的transition组件通过观察元素的DOM状态,来判断元素是插入还是移除 ?这个展示两个例子:
?这个是我项目里的通过v-bind:showModal来操纵DOM元素 二、具体是怎么操作过渡的呢?1.过渡的类名
?这张图想要表达的其实很简单,vue将过渡动画分为了两个部分Enter(进入)和Leave(离开) 并且有很好的代码对称性(关于代码对称性,后面还有提到)
?2.Enter(进入)过渡动画
v-enter (起始节点)其实很容易理解,对过渡动画进行初始化。一个起始的点,决定了动画从哪里开始。 官网里还有特别强调说v-enter是在元素插入之前就生效了的,也就是确保了动画能从v-enter的地方开始过渡。且在元素插入的下一帧就移除了,这个是很关键的,说明v-enter只关注与动画的起始那个节点,一旦元素插入进来了,过渡动画开始跑了,就不归v-enter来管了。 打个比方,我们想要做一个从上面滑动进入的过渡动画,起始节点就可以设置v-enter里的属性top:-100%(这里我的是slide-enter而非v-enter是因为我在transition里定义了name属性) ? ?v-enter里top:-100%就是相对于“原状态”的位置,设置一个top值比“原状态”更小的起始值,让元素一开始从更高的位置进入,来开始这段过渡动画。
v-enter-active(过渡阶段)v-enter-active用来定义过渡动画的过程,它拥有最长的持续时间,包括了整个Enter(进入)动画的持续时间。
?
v-enter-to(结束节点)官网对它的描述是在元素被插入之后即刻生效,其实也可以理解成v-enter-to紧接在v-enter失效后就生效,(形象化的说,就是v-enter把接力棒传给了v-enter-to)v-enter-to本身的生效时间还是挺长的。因为v-enter只在很短的瞬间做了一个初始化的操作,就把接力棒传给v-enter-to了,然后v-enter-to一直持续到Enter(进入)动画的结束。
?像我们这里对Enter(进入)过渡动画只定义了起始节点v-enter和v-enter-to,把v-enter-active省略, 并且把transition:all .5s;写到了v-enter-to里,但是这里的transaction:all.5s;仍然能生效,就和写在v-enter-active是一样的效果。 ?效果如下图:(像我项目里设置的是点击购物车图标触发DOM元素插入)动画就是提示框从上面滑动进入 ?常规的写法我也贴出来放在这里:
?常规写法的效果跟刚刚是一样的: ?被隐藏的一段过程
?
这里为了看的更清晰,用的是1s的持续时间。 ? ?效果如下图
?总结
?暂时还没找到好用的作图工具,手画了一张大致的过程 3.Leave(移除)过渡动画
?v-leave
?地址贴在这里:`v-leave` transition class should be removed in 2.0 · Issue #3580 · vuejs/vue · GitHub ?尤大的意思大概就是:? ?为了vue的代码对称性~~~ v-leave-active?
?v-leave-to
? ? 总结? ? ? ? ?vue的过渡动画虽然被分为了两个很类似的部分,但是实际上还是按照流程(或者说是时间)来执行的。所以enter的部分和leave的部分还是有一些小不同,主要就是体现在v-leave上 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 10:13:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |