前几篇我们学习了事件处理。本篇将介绍 过渡与动画,让 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://www.pswp.cn/news/920966.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/920966.shtml
英文地址,请注明出处:http://en.pswp.cn/news/920966.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】力扣刷题攻略路线推荐!适合新手小白入门~(含各类题目序号)

力扣上有许多数据结构及算法的练习&#xff0c;但是如果由第一题【两数之和】开始刷&#xff0c;会让50%的人倒在起点。所以我们刷题要讲究路线攻略以及技巧~大体路线方向由简入难数学数组链表字符串哈希表双指针递归栈队列树图与回溯算法贪心动态规划刷题技巧 建议刷题的时候分…

Windows 电脑发现老是自动访问外网的域名排障步骤

Windows 电脑发现老是自动访问外网的域名,如何排障 一、基础信息获取与进程定位 1.1、确认进程关键信息 1.2、进程合法性初步验证 二、网络连接深度分析 2.1、目的IP/域名溯源 2.2、端口与协议检查 三、进程行为与系统异常排查 3.1、进程启动与依赖分析 3.2、系统异常行为扫描…

curl、python-requests、postman和jmeter的对应关系

一、初识curlcurl 是一个功能强大的命令行工具&#xff0c;用于传输数据&#xff0c;支持多种协议&#xff08;如 HTTP、HTTPS、FTP 等&#xff09;。分析以下curl&#xff1a;curl "https://$HOST/mon/adm/au/opera" --header "Authorization: $AUTH" -X …

【MySQL】初识数据库基础

【MySQL】初识数据库基础 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;MySQL笔记 文章目录【MySQL】初识数据库基础前言一. 数据库基础&#xff08;重点&#xff09;1.1 什么是数据库1.2 主流数据库1.3 基本使用1.3.1 MySQL安装1.3.2 连接…

微服务Docker-compose之若依部署

目录 1.创建一个文件夹 2.上传压缩包 3.解压 4.执行ry1文件 5.执行ry2文件 6.进入nginx的html目录解压dist文件 7.执行ry3文件 8.访问nacos 9.访问若依 1.创建一个文件夹 2.上传压缩包 3.解压 4.执行ry1文件 5.执行ry2文件 6.进入nginx的html目录解压dist文件 7.执行ry…

《中国棒球》健将级运动员什么水平·棒球1号位

棒球国家健将级の神级科普&#xff5c;国内TOP1%⚾️国际能打吗&#xff1f;1. 什么是"国家健将级"&#xff1f;&#xff5c;What is "Master Sportsman"&#xff1f;中国运动员等级天花板&#xff1a;仅次"国际健将"的最高国家级荣誉&#xff0…

NAT与内网穿透

目录 一、为什么需要NAT&#xff1f; 二、NAT的核心&#xff1a;从“一对一”到“多对一” &#xff08;1&#xff09;静态NAT &#xff08;2&#xff09;动态NAT &#xff08;3&#xff09;NAPT 三、NAPT的双刃剑&#xff1a;安全与局 四、内网穿透 &#xff08;1&…

力扣222 代码随想录Day15 第四题

完全二叉树结点的数量class Solution { public:int countNodes(TreeNode* root) {if(rootNULL) return 0;TreeNode* leroot->left;TreeNode* riroot->right;int ld0;int rd0;while(le){lele->left;ld;}while(ri){riri->right;rd;}if(ldrd) return(2<<ld)-1;i…

Node.js异步编程:Callback/Promise/Async

Node.js异步编程&#xff1a;Callback/Promise/Async引言Node.js以其非阻塞I/O和事件驱动架构而闻名&#xff0c;这使得异步编程成为Node.js开发中的核心概念。在Node.js中&#xff0c;处理异步操作经历了从Callback到Promise再到Async/Await的演进过程。本文将探讨这三种异步编…

野火STM32Modbus主机读取寄存器/线圈失败(一)-解决接收中断不触发的问题

接收中断不触发 前情提要 在自己的开发板上移植了野火的modbus主机程序。 野火主机程序移植 野火主机代码理解与使用 问题背景 我使用STM32显示板作为Modbus主机连接电脑&#xff0c;并在电脑上运行Modbus Slave软件。测试中发现&#xff0c;读取保持寄存器和输入寄存器均失…

5种常见的网络安全漏洞及防护建议

五种常见的网络安全漏洞及防护建议在数字化时代&#xff0c;网络安全已成为个人和企业面临的重要挑战。网络攻击手段不断升级&#xff0c;黑客利用各种漏洞入侵系统、窃取数据或破坏服务。了解常见的网络安全漏洞并采取相应的防护措施&#xff0c;是保障信息安全的关键。本文将…

mysql5.6+分页时使用 limit+order by 会出现数据重复问题

mysql5.6分页时使用 limitorder by 会出现数据重复问题 问题描述 在MySQL中我们通常会采用limit来进行翻页查询&#xff0c;比如limit(0,10)表示列出第一页的10条数据&#xff0c;limit(10,10)表示列出第二页。但是&#xff0c;当limit遇到order by的时候&#xff0c;可能会出现…

【XR技术概念科普】VST(视频透视)vs OST(光学透视):解码MR头显的两种核心技术路径

混合现实(MR)头显作为连接虚拟与现实世界的桥梁&#xff0c;其核心技术路径主要分为视频透视(VST)和光学透视(OST)两种。本文将深入探讨这两种技术的原理、优缺点、代表性产品、应用场景及未来发展趋势&#xff0c;为读者全面解析MR头显的技术选择。一、VST技术详解1.1 VST技术…

VR智慧楼宇技术:打造智能办公空间的卓越方案​

在华锐视点打造的极具创新性的VR智慧楼宇的智能办公空间里&#xff0c;员工的工作模式迎来了前所未有的、彻头彻尾的颠覆性变革。凭借华锐视点自主研发的先进VR设备&#xff0c;哪怕员工远在千里之外的不同城市&#xff0c;甚至身处不同国家&#xff0c;也能如同真切地置身于同…

C++ 面试考点 类成员函数的调用时机

构造函数和析构函数的调用时机 1. 对于全局定义的对象&#xff0c;每当程序开始运行&#xff0c;在主函数 main 接受程序控制权之前&#xff0c;就调 用构造函数创建全局对象&#xff0c;整个程序结束时&#xff0c;自动调用全局对象的析构函数。 2. 对于局部定义的对象&#…

59.螺旋矩阵II

59.螺旋矩阵II 螺旋矩阵没有什么算法&#xff0c;就是一道单纯模拟转圈的一道题目&#xff0c;因为转圈的过程需要处理的边界条件很多&#xff0c;所以有难度 那只能从第二个节点开始处理&#xff1b;从第二个节点开始处理&#xff0c;把最后一个节点也处理了&#xff08;第二…

MS SQL(Microsoft SQL Server)面试常考的知识点

MS SQL是Microsoft SQL Server的简称&#xff0c;是由微软公司开发的一款关系型数据库管理系统&#xff08;RDBMS,Relational DataBase Management System&#xff09;。它支持在Windows和Linux上运行&#xff0c;广泛应用于企业级数据库市场&#xff0c;适用于大型企业网站和应…

百胜软件获邀出席第七届中国智慧零售大会,智能中台助力品牌零售数智变革

8月28日&#xff0c;由深圳市智慧零售协会主办的第七届中国智慧零售大会在深圳福田希尔顿酒店成功召开。本届大会以“聚势AI共启智慧零售新生态”为主题&#xff0c;汇聚了来自北京大学、腾讯云、百果园、舍得酒业、美宜佳等众多知名企业与机构的专家代表&#xff0c;共同探讨A…

QEMU使用Qemu-Guest-Agent传输文件、执行指令等

简介 之前介绍过qemu传输文件,使用的挂载 / samba方式 :Qemu和宿主机不使用外网进行文件传输。 这是一种方式,这里还有另一种方式:使用Qemu-Guest-Agent,后面简称qga。 官网介绍:https://www.qemu.org/docs/master/interop/qemu-ga.html 安装 这里有一篇参考文章,会…

HTML 核心标签全解析:从文本排版到媒体嵌入

在网页开发中&#xff0c;HTML&#xff08;超文本标记语言&#xff09;是构建页面结构的基石。掌握各类核心标签的用法&#xff0c;是实现页面内容有序呈现、提升用户体验的关键。本文将系统讲解 HTML 中最常用的几类标签 —— 段落标签、文本格式标签、列表标签、表格&#xf…