当前位置: 首页 > news >正文

【Vue2 ✨】Vue2 入门之旅(八):过渡与动画

前几篇我们学习了事件处理。本篇将介绍 过渡与动画,让 Vue 页面更加生动。


目录

  1. transition 组件
  2. 进入与离开过渡
  3. 过渡类名
  4. 结合 CSS 动画
  5. JavaScript 钩子
  6. 小结

transition 组件

Vue 提供了内置组件 <transition>,可以为元素或组件的进入和离开添加动画效果。

<div id="app"><button @click="show = !show">切换</button><transition name="fade"><p v-if="show">Hello Vue!</p></transition>
</div><script>
new Vue({el: '#app',data: {show: true}
})
</script><style>
.fade-enter-active, .fade-leave-active {transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to {opacity: 0;
}
</style>

在这里插入图片描述

点击按钮时,文字淡入淡出。


进入与离开过渡

当元素插入或移除时,Vue 会自动应用 过渡类名

  • .v-enter:进入开始状态
  • .v-enter-active:进入过渡状态
  • .v-enter-to:进入结束状态
  • .v-leave:离开开始状态
  • .v-leave-active:离开过渡状态
  • .v-leave-to:离开结束状态

通过这些类名,我们可以自由定义动画效果。


过渡类名

使用 <transition name="fade"> 时,Vue 会自动拼接类名:

fade-enter
fade-enter-active
fade-enter-to
fade-leave
fade-leave-active
fade-leave-to

这样可以为不同过渡定义不同样式。


结合 CSS 动画

过渡不仅可以用 transition,也可以用 @keyframes 动画。

<transition name="bounce"><p v-if="show">跳动的文字</p>
</transition><style>
.bounce-enter-active {animation: bounce-in 0.8s;
}
.bounce-leave-active {animation: bounce-in 0.8s reverse;
}
@keyframes bounce-in {0% { transform: scale(0.5); }50% { transform: scale(1.2); }100% { transform: scale(1); }
}
</style>

效果:文字从小放大,带有弹跳感。


JavaScript 钩子

除了 CSS,还可以用 JavaScript 控制过渡。

<div id="app"><button @click="show = !show">切换显示/隐藏</button><transition @before-enter="beforeEnter" @enter="enter" @leave="leave"><p v-if="show">JS 控制动画</p></transition>
</div><script>new Vue({el: '#app',data: { show: true },methods: {beforeEnter(el) {// 动画开始前el.style.opacity = 0;},enter(el, done) {// 进入动画setTimeout(() => {el.style.transition = "opacity 1s";el.style.opacity = 1;done(); // 通知 Vue 动画结束}, 0);},leave(el, done) {// 离开动画el.style.transition = "opacity 1s";el.style.opacity = 0;setTimeout(done, 1000);}}})</script>

在这里插入图片描述

这里用 JS 精准控制了进入和离开的动画。


小结

  1. 使用 <transition> 可以为元素添加过渡动画。
  2. Vue 自动应用过渡类名,如 .fade-enter.fade-leave-to
  3. 过渡既可以用 CSS transition / animation,也可以用 JavaScript 钩子。

📚 下一篇文章,我们将学习 Vue Router 入门,掌握路由配置和页面切换。


文章转载自:

http://iP2GOmrS.nfnxp.cn
http://UZruTwyE.nfnxp.cn
http://yB4x1ndq.nfnxp.cn
http://ZmFTTZ0v.nfnxp.cn
http://gGMMmjoq.nfnxp.cn
http://56zqwMqY.nfnxp.cn
http://trL4GZw0.nfnxp.cn
http://tkuTlT0U.nfnxp.cn
http://lo0u4IAg.nfnxp.cn
http://yBUVCFsa.nfnxp.cn
http://oOrxYjak.nfnxp.cn
http://0GpLPYHf.nfnxp.cn
http://WUtjrJgO.nfnxp.cn
http://VcbRncIP.nfnxp.cn
http://FRQRs6Ur.nfnxp.cn
http://lerLQ0O4.nfnxp.cn
http://x4sozhpY.nfnxp.cn
http://nBWMpukP.nfnxp.cn
http://2Vsrk4AE.nfnxp.cn
http://0o1QMWjC.nfnxp.cn
http://UrTh46Ns.nfnxp.cn
http://UgY07Jyg.nfnxp.cn
http://YuMaseo4.nfnxp.cn
http://VkJ5CEVK.nfnxp.cn
http://p9771qSz.nfnxp.cn
http://THwrWqVT.nfnxp.cn
http://ssP9PYYp.nfnxp.cn
http://QM5aSsJ8.nfnxp.cn
http://IDFMohT4.nfnxp.cn
http://vioge5DA.nfnxp.cn
http://www.dtcms.com/a/362701.html

相关文章:

  • 基础文本处理工具与文本三剑客其二sed awk
  • unity 中的 gradle building 加速(可能无用,导致包体异常)
  • 【C++详解】C++11(三) 可变参数模板、包扩展、empalce系列接⼝、新的类功能
  • MyBatis:让 SQL 与代码和谐共处的持久层框架
  • React学习教程,从入门到精通, React 入门指南:React JSX 语法知识点详解及案例代码(8)
  • React 学习笔记4 Diffing/脚手架
  • go命令行工具:如何在现有的工程里加入使用cobra
  • 01 - 网页和web标准
  • AI文档产品与传统OCR软件的根本区别是什么?
  • Java集合源码解析之LinkedList
  • HTTPS如何保证数据传输过程中的安全性?
  • mapbox高阶,结合threejs(threebox)添加管道,实现管道流动效果
  • 红楼梦 HTML 分析 - 娇杏为何侥幸
  • ES6和CommonJS模块区别
  • Linux系统强大的命令行工具之fuser
  • 江协科技-1-1软件开发与2-1新建工程
  • C语言精选100道编程题(附有图解和源码)
  • 控制系统仿真之PID参数整定的Z-N法(弯曲切线法)(十)
  • K6 html压力测试报告中参数详解以及常见问题解析
  • 算法题打卡力扣第3题:无重复字符的最长子串(mid)
  • 在线拍卖|基于Springboot+vue的在线拍卖管理系统(源码+数据库+文档)
  • F5发布后量子API安全解决方案,以AI驱动全面防护应对量子计算威胁
  • 面阵 vs 线阵相机:怎么选不踩坑?选型公式直接套用
  • HTML第二课:块级元素
  • 【实时Linux实战系列】采用实时Linux构建无人机控制系统
  • Vue基础知识-Vue中v-cloak、v-text、v-html、v-once、v-pre指令详解
  • 【Doris入门】Doris数据表模型:聚合模型(Aggregate Key Model)详解
  • 数论常见公式定理大全
  • C++学习——继承
  • 无线通信网络是互联网边缘的重要组成,同时也是局域联网的主要方式