vue基础:Vue动画

Vue3学习之旅-Vue3过渡&动画实现 Vue3过渡&动画实现 动画 认识动画 在开发中,我们想要给一个组件的显示和消失添加某种过渡动画,可以很好的增加用户体验: React框架本身并没有提供任何动画相关的API,所以在React中使用过渡动画我们需要使用一个第三方库 react-transition-group; Vue中为我们提供一些内置组件和对应的API来完成动画,利用它们我们可以方便的实现过渡动画效果; 我们来看一个案例: Hello World的显示和隐藏; 通过下面的代码实现,是不会有任何动画效果的; 没有动画的情况下 阅读详情

vue动画

前言

本文将围绕是什么、有什么用、怎么用的话题,讲讲vue动画的特点和如何使用

什么是Vue动画,它能用在哪些场景?

过渡是由一个状态变为另一个状态的过程,而动画就是过程的集合了【个人以为】。

“Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果”,即Vue的动画是作用是让元素在改变前添加一些过度效果。这样可以让用户在视觉和交互上有更好的体验。

请添加图片描述

看个例子,代码如下,直接复制就可以有效果。没看明白没关系,继续看之后的内容

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
	<title></title>
	<style type="text/css">
		/* 设置持续时间和动画函数 */
		.v-enter-active,.v-leave-active {
		  transition: all .8s ease;
          }
		.v-enter, .v-leave-to{
		  transform: translateX(100px);
		  opacity: 0;
		}
	</style>
</head>
<body>
	<div id="app">
		  <button @click="show = !show">切换</button>
		  <transition>
		    <p v-show="show">hello</p>
		  </transition>

	</div>

	<script type="text/javascript">
		let vue  = new Vue({
			el:'#app',
			data:{
				show:true,
			},
		})

	</script>
</body>
</html>

vue动画的两个状态切换

触发条件可以是元素删除,添加,数组或列表内容的更新。这里使用v-show来修改元素状态

请添加图片描述

进入( enter )

对于v-show来说,当他的条件由false转为true为进入(v-if也一样)。条件为真说明是展示元素

对于的触发的css类为(默认):v-enter、v-enter-to、v-enter-active,其中v-enter-active是包括了v-enter、v-enter-to两个过程,一般用于设置过度时间。

触发顺序是:v-enter ——> v-enter-to ;

v-enter和v-enter-active同时执行

上面的案例中,用v-enter-active定义了过度效果,v-enter定义进入的初始状态,v-enter-to定义进入的最终状态

.v-enter-active{
    transition: all .8s ease;
}
.v-enter{
    transform: translateX(100px);
    opacity: 0;
}
/* .v-enter-to{} 最终状态没定义,以默认为当前为的状态 */

请添加图片描述

退出;离开( leave )

对于v-show来说,当他的条件由true转为false为退出(v-if也一样)。条件为真说明是隐藏元素

对于的触发的css类为(默认):v-leave、v-leave-to、v-leave-active,其中v-leave-active是包括了v-leave、v-leave-to两个过程,一般用于设置过度时间。

触发顺序是:v-leave ——> v-leave-to ;

v-enter和v-enter-active同时执行

上面的案例中,用v-leave-active定义了过度效果,v-leave定义进入的初始状态,v-leave-to定义进入的最终状态

.v-leave-active{
    transition: all .8s ease;
}
.v-leave{
    transform: translateX(100px);    
    opacity: 0;
}/* .v-leave-to{} 最终状态没定义,以默认为当前为的状态 */

请添加图片描述

由于部分代码是一样的,最终合成了以上的css代码

/* 设置持续时间和动画函数 */
.v-enter-active,.v-leave-active {
    transition: all .8s ease;
}
.v-enter, .v-leave-to{
    transform: translateX(100px);
    opacity: 0;
}

vue动画为我们提供了什么?

Vue动画为我们提供了一个<transition></transition>、<transition-group></transition-group>组件用于包裹要添加过度动画的元素和一套规则。标签、动画进和出的两个过程及对应其动画类名的定义,还有动画的回调函数

<transition></transition>
<transition-group></transition-group>
// 类名部分
.v-enter{}  //
.v-enter-to{}
.v-leave{}
.v-leave-to{}
.v-leave-active{}
.v-enter-active{}
// 回调函数部分。这里还不熟悉,本文不讲回调部分
v-on:before-enter="beforeEnter"   //进入前的回调函数
v-on:enter="enter"				// 进入的回调
v-on:after-enter="afterEnter"	 // 进入后的回调
v-on:enter-cancelled="enterCancelled"  // emm

v-on:before-leave="beforeLeave"  // 退出前的回调
v-on:leave="leave"			// 退出的回调
v-on:after-leave="afterLeave"   // 退出执行后的回调
v-on:leave-cancelled="leaveCancelled"  // emm

回调函数的参数是单曲的元素.这里还不熟悉,本文不讲回调部分

function enter(el){
    // 定义进入时的回调函数
    console.dir(el)
}

要完成一个动画,我们还需要补充些什么?

  1. 确保vue框架正确的引入了,2.x及以上版本
  2. 在需要添加过渡效果的元素上外添加标签<transition>或<transition-group>。包裹着过度的元素,如果有多个过度的话,为标签添加name="{自定义类名前缀}"属性来区分css过度
  3. 给元素添加状态,可用是v-if,v-show,数组增减等…
  4. 定义过度动画每个状态的css属性:进入前后v-enter-…,退出前后v-leave…
  5. 改变元素状态,查看动画效果

一个动画案例

实现官网的一个数组添加和删除的动画案例

1. 确保框架引入和基本骨架搭建

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
	<title></title>
	<style type="text/css">
		
	</style>
</head>
<body>
	<div id="app">
	</div>
	<script type="text/javascript">
		let vue  = new Vue({
			el:'#app',
			data:{
			},
		})

	</script>
</body>
</html>

2. html部分

<div id="app">
    <button @click="add">添加</button>
    <button @click="remove">删除</button>
    <!-- 因为是多个元素。这里用group标签,tag属性指明参与过度的是li标签 -->
    <transition-group name="list" tag="li">
    	 <li v-for="item in listArr" :key="item">{{item}}</li>
    </transition-group>
</div>

3. 定义元素的添加和删除方法,以及初始化数据

let vue  = new Vue({
    el:'#app',
    data:{
        current:7,// 试用顺序添加是为了保持v-for的key的唯一性
        listArr:[0,1,2,3,4,5,6]
    },
    methods:{
        add(){
            console.dir(this.listArr)
            this.listArr.push(++this.current)
        },
        remove(){
            this.listArr.splice(0,1)
        }
    }
})

4. 定义过度动画的css样式

<style>
.list-enter-active, .list-leave-active {
  transition: all 1s;
}
.list-enter, .list-leave-to {
 /* 进入的初始状态和离开的最终状态 */
  opacity: 0;
  transform: translateY(30px);
}
/* .list-leave,.list-enter-to{}
不定义进入的最终状态和离开的初始状态。默认为原本的状态
*/
li{
    /* 去除列表前的点 */
	list-style: none;
}
</style>

5.看最后效果:

请添加图片描述

Vue3——使用v-if或v-show来实现过渡的动画效果 想要通过v-if或者v-show来实现动画的衔接动作,也看了网上的一些例子,这里给总结一下。这里如果是想点击一次过渡过去再次点击一次过渡回来的话,是不需要给两个不同的。这种过渡效果很简单,只需要用if语句来判断动画出现顺序即可。标签设置两种动画,只需要用同一个动画即可。就不需要加**name=‘h1’**了。 阅读详情

相关推荐

vue如何实现给文字或图标动态施加动画效果,或动态添加hover效果

Vue如何实现给文字或图标动态施加动画效果,或动态添加hover效果 先上效果图看下 有可能大家想要实现别的应用动画效果,但是掌握好这个技巧后基本可以适用许多简单的基础动画效果 先说下原理,其实这里用到的是vue中两个监听事件,分别是mouseover(鼠标悬停在指定元素上)和mouseout(鼠标离开指定元素后), 知道了这两个监听事件后,大家应该已经明白是怎么回事了吧 下面上代码 <span class="right-showout-icon iconfont" :style="{'colo

YodgeGGG的博客 3406

vue-动画

Vue过渡动画的核心原理依然是采用css类是实现的,只是vue帮助我们在组件的不同生命周期自定切换不同的css类。Vue中默认提供一个名为transition的内置组件,可以用其来包装要展示过渡动画的组件。transition组件的name属性用来设置要执行的动画名称,Vue中约定了一系列css类名规则来定义各个过渡过程中的组件状态。x-enter-from类在组件即将被插入页面时添加到组件上,可以理解为组件的初始状态。

m0_53614495的博客 6067

Vue2 入门-第十一篇:Vue2 动画与路由基础

Vue Router 是 Vue2 的官方路由管理器,它使得构建单页应用(SPA)的路由功能变得非常容易。在单页应用中,页面的切换实际上是组件的切换,Vue Router 负责管理这些组件的展示与隐藏,实现不同 URL 与组件之间的映射关系,从而提供类似于多页应用的导航体验,同时保持页面的无刷新切换。

无 991

vue中动画效果的实现

一,过渡动画的实现 1,无过渡,直接变化 <template> <div class="testBox"> <div class="testCon" :style="{ width: width + 'px' }"></div> <div class="testBtn" @click="clickBtn">点击按钮</div> </div> </template> <script

weixin_42349568的博客 1万+

从涡流求解器到瞬态场:Maxwell 3D里无线充电仿真,选对求解器能省一半计算时间

本文深入探讨了Maxwell 3D在无线充电仿真中涡流求解器与瞬态求解器的选择策略,帮助工程师优化计算效率与精度。通过对比分析两种求解器的适用场景、性能差异及实战技巧,揭示如何根据频率特性、材料非线性和动态过程需求做出精准选择,可节省高达50%的计算时间。特别针对3D线圈模型的无线充电系统设计提供了专业建议。

weixin_26861329的博客 230

Unity面试题总结

Unity面试题

sinat_34014668的博客 1万+

VUE学习:vue基础20————动画02:动画

提示: VUE学习:vue基础19————动画01:过渡 VUE学习:vue基础19————动画02:动画前言动画动画使用动画完成过渡效果第三方动画库的使用使用第三方库:钩子函数 前言 本文学习Vue的动画相关内容。 提示:以下是本篇文章正文内容,下面案例可供参考 动画 动画 使用动画完成过渡效果 <head> <meta charset="UTF-8"> <title>Title</title> <style>

GAlbinus的博客 212

PDS联合Modelsim仿真报错(Error loading design) line6报错 -novopt已禁用 (全网最详细!!!!!)

发现这个文档是Pango自动生成的,也就是说每一次我们点击"Run Behavior Simulation"的时候,PDS都会自动生成一次这个./run_behav_simulate.tcl文件,所以就算我们这一次把这个文件修改了,我点击"Run Behavior Simulation"想让它再跑一次正确的仿真,它此时又重新生成了这个带有-novopt的错误tcl文件,仿真依旧不能成功。问题真的是出在这里,那我们修改这个./run_behav_simulate.tcl文件就好了,但事实并非如此!

weixin_74058783的博客 3191

vue基础:过渡动画、列表动画、案例

公共部分: <div id="root"></div> <script src="https://unpkg.com/vue@next"></script> 动画: @keyframes leftToRight { 0% { transform: translateX(-100px); } 50% {

小白小白从不日别的博客 1253

Windows下CMake的下载与安装详解

目录一、CMake介绍二、CMake的下载与安装 一、CMake介绍 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。 二、CMake的下载与安装 CMake下载链接:https://cmake.org/download/。 下载最新稳定版即可(Latest Release): 下载完成后,单击“Next”按钮,在下图中勾选“I acce

Wendy的博客 8万+

2026华为OD机试(C++)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,C++实现。

MISAYAONE的博客 20万+

VUE学习:vue基础22————动画04:动画练习

提示: VUE学习:vue基础22————动画04:动画练习 VUE学习:vue基础22————动画04:动画练习前言动画动画练习组件切换案例 前言 本文学习Vue的动画相关内容。 提示:以下是本篇文章正文内容,下面案例可供参考 动画 动画练习 组件切换案例 <head> <meta charset="UTF-8"> <title>Title</title> <script src="vue.js"></script&g

GAlbinus的博客 242

华为OD 面试手撕代码真题【判断链表是否有环】

华为OD 面试手撕代码真题【判断链表是否有环】

MISAYAONE的博客 7226

从基础到进阶:全面掌握 Vue 动画效果实现技巧

动画效果在Web开发中扮演着重要角色,不仅提升了用户体验,还增强了网页的视觉吸引力,Vue.js 不仅在构建用户界面方面表现出色,还提供了简洁而强大的动画实现方式。通过合理使用Vue的动画系统,我们能够轻松构建出流畅、自然的过渡效果。本文将深入探讨如何在Vue中实现页面动画效果,帮助开发者打造出更具吸引力的Web应用。除了默认的类名,我们还可以自定义类名。opacity: 1;

乐闻世界 1324

Java中使用工厂模式和策略模式优雅消除if-else语句(UML类图+案例分析)

在最近的后端开发中,多多少少会发现有很多if-else语句,如果条件过多则会造成整体代码看起来非常臃肿。本篇博客汇总了我对工厂模式和策略模式的理解,以及我是如何把它们巧妙运用在实际项目当中的一些技巧进行了分享,如有问题,欢迎评论区讨论!

黄团团的个人博客 2611

华为OD机试 - 小火车最多人时所在园区站点(Java 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 995

vue基础:组件、过渡、动画

动画 Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。包括以下工具: 在 CSS 过渡和动画中自动应用 class 可以配合使用第三方 CSS 动画库,如 Animate.css 在过渡钩子函数中使用 JavaScript 直接操作 DOM 可以配合使用第三方 JavaScript 动画库,如 Velocity.js 组件 组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。 全局组件 语法格式:Vue.componen

xh943426的博客 317

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Vue Native动画效果全解析:从基础到高级过渡动画

你是否还在为跨平台开发的动画实现复杂性而烦恼?作为Vue开发者,面对不同平台的动画能力差异是否感到困惑?本文将系统讲解Vue Native的动画系统,帮助你用熟悉的Vue语法创建流畅的跨平台原生动画效果。 Vue Native是一个使用JavaScript构建跨平台原生移动应用的框架,它基于Vue.js语法并包装了移动开发平台的API。尽管项目已停止维护[README.md](https://l...

gitblog_00704的博客 670

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Vue.js基础】9、过渡与动画:让你的应用动起来

Vue.js是一个由尤雨溪(Evan You)开发的渐进式JavaScript框架,专注于构建用户界面。凭借其简单易用的API和灵活的架构,Vue.js能够轻松集成到项目中,也可以用于开发复杂的单页应用(SPA)。Vue.js采用双向数据绑定和基于组件的开发模式,显著提升了开发效率和代码复用性。其丰富的生态系统,包括Vue CLI、Vue Router和Vuex等工具,使得Vue.js成为现代Web开发中备受欢迎的选择。无论是初学者还是经验丰富的开发者,Vue.js都提供了强大的功能和极佳的开发体验。

weixin_52938153的博客 894

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

9、Vue3动画实战:从基础过渡到列表/页面切换动画全解析

Vue3动画实战解析:从CSS基础到列表/页面切换动画 本文系统讲解了Vue3动画实现方案,从前端CSS动画基础出发,深入解析Vue3过渡、列表和页面切换动画的实现方法。 内容要点: CSS动画基础:通过transition实现属性平滑过渡,使用@keyframes创建复杂动画 Vue3 transition组件:详解类名规则和实现原理,展示单个元素显隐动画控制 实战案例:为清单应用添加弹窗滑入滑出动画,优化用户体验 列表动画:使用transition-group实现v-for列表的进入/离开动画和位移过渡

走自己的路让别人无路可走 1575

VUE学习:vue基础19————动画01:过渡

提示: VUE学习:vue基础19————动画01:过渡 VUE学习:vue基础19————动画01:过渡前言动画过渡过渡案例演示过渡类名过渡类名的触发条件移动过渡效果 前言 本文学习Vue的动画相关内容。 提示:以下是本篇文章正文内容,下面案例可供参考 动画 过渡 过渡案例演示 <head> <meta charset="UTF-8"> <title>Title</title> <script src="vue.js">&l

GAlbinus的博客 196

Vue Bits文本动画组件深度解析:从基础到高级应用

在Vue.js生态系统中,Vue Bits作为一个开源的可动画化、交互式Vue组件库,为开发者提供了超过90个精心设计的组件。其中,文本动画组件系列以其独特的视觉效果和高度可定制性,成为提升网站视觉吸引力的终极选择。本文将深入解析Vue Bits中的24个文本动画组件,从基础应用到高级技巧,帮助您掌握如何利用这些组件打造令人难忘的用户体验。 ## Vue Bits文本动画组件概览 🎨 Vue

gitblog_00183的博客 1044

vue基础(2):深入理解 Vue 组件、Vue中的动画特效

一、深入理解 Vue 组件 1.1 使用组件容易遇到的坑 &amp;amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;amp;nbsp;1.1.1 使用is='组件名'解决html表签嵌套规范造成的bug &amp;amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;amp;nbsp;1.1.2 非根组件(子组件)中data必须是函数,返回一个对象 一、

weixin_39141044的博客 845

VUE学习:vue基础21————动画03:多种类型过渡

提示: VUE学习:vue基础21————动画03:多种类型过渡 VUE学习:vue基础21————动画03:多种类型过渡前言动画多种类型过渡多标签过渡多组件过渡列表过渡 前言 本文学习Vue的动画相关内容。 提示:以下是本篇文章正文内容,下面案例可供参考 动画 多种类型过渡 多标签过渡 过渡模式: in-out表示新元素先过渡,完成后当前元素再消失。 out-in当前元素先过渡,新元素再进入。 <head> <meta charset="UTF-8"> <ti

GAlbinus的博客 163

vue-lottie配置全解析:从基础到高级的动画控制技巧

vue-lottie是一款基于Bodymovin的Vue动画渲染组件,能够将After Effects创建的动画无缝集成到Vue项目中。通过简单的配置,开发者可以轻松实现高质量的矢量动画效果,为web应用增添生动的视觉体验。本文将从基础安装到高级动画控制,全面解析vue-lottie的配置技巧与最佳实践。 ## 快速上手:vue-lottie基础安装指南 要在Vue项目中使用vue-lotti

gitblog_00069的博客 423

[Vue] 24.Vue.js过渡与动画:实现基础的CSS过渡与动画效果

Vue实现过渡与动画

u014627255的博客 172
上一篇: 蓝桥web挑战:js、jq常用方法
下一篇: echarts:在html中使用
jayLog
博客等级 码龄7年 318粉丝 71原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jayLog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值