Vue 过渡与动画的使用

news2024/11/25 20:52:18

transition 标签的作用:在插入 更新或 移除 DOM 元素时 可以给元素添加动画效果.

transition 标签配合的 class 类有:
- v-enter:进入的起点。
- v-enter-active:进入时的效果。
- v-enter-to:进入的终点。
- v-leave:离开的起点。
- v-leave-active:离开时的效果 
- v-leave-to:离开的终点。

 使用 CSS3 实现动画:

创建 Home.vue 页面,并给元素设置显示隐藏动画效果。

<template>
    <div>
        <button @click="isShow = !isShow">显示/隐藏</button>
        <h2 v-show="isShow" class="come">你好呀!!!</h2>
    </div>
</template>

<script>
export default {
    name: "Home",
    data() {
        return {
            isShow: true
        }
    }
}
</script>

<style scoped>
h2 {
    background-color: aqua;
}
/* 进入时的动画效果(显示) */
.come {
    animation: toggleShow 0.5s;
}
/* 离开时的动画效果(隐藏) */
.go {
    animation: toggleShow 0.5s reverse;
}
@keyframes toggleShow {
    from {
        transform: translate(-100%);
    }
    to {
        transform: translate(0px);
    }
}
</style>

:animation 中的 reverse 表示颠倒动画的效果。另外,使用原生 CSS3 不能同时给元素添加进入和离开两种动画 以上只是添加进入的动画效果。

 

 使用 transition 标签配合 CSS3 动画实现:

 transition 标签是由 Vue 提供的,可以给内部的元素添加过渡效果。

<template>
    <div>
        <button @click="isShow = !isShow">显示/隐藏</button>
        <transition>
            <h2 v-show="isShow">你好呀!!!</h2>
        </transition>
    </div>
</template>

<script>
export default {
    name: "Home",
    data() {
        return {
            isShow: true
        }
    }
}
</script>

<style scoped>
h2 {
    background-color: aqua;
}
/* 进入时的动画效果(显示) */
.v-enter-active {
    animation: toggleShow 0.5s;
}
/* 离开时的动画效果(隐藏) */
.v-leave-active {
    animation: toggleShow 0.5s reverse;
}
@keyframes toggleShow {
    from {
        transform: translate(-100%);
    }
    to {
        transform: translate(0px);
    }
}
</style>

:使用 transition 标签创建动画时 class 命名不能随便定义 v-enter-active 表示进入时的动画效果 v-leave-active 表示离开时的动画效果.

 

 使用 transition 标签配合 CSS3 动画实现多组动画效果:
如果需要在一个组件中创建多组动画,可以给 transition 标签定义一个名称。并且对应的 class 名也必须是 名称-enter-active 和 名称-leave-active.

<template>
    <div>
        <button @click="isShow = !isShow">显示/隐藏</button>
        <transition name="leftRight">
            <h2 v-show="isShow">左右滑动</h2>
        </transition>
        <transition name="topBottom">
            <h2 v-show="isShow">上下滑动</h2>
        </transition>
    </div>
</template>

<script>
export default {
    name: "Home",
    data() {
        return {
            isShow: true
        }
    }
}
</script>

<style scoped>
h2 {
    background-color: aqua;
}
/* 进入时的动画效果(左右显示) */
.leftRight-enter-active {
    animation: leftShow 0.5s;
}
/* 离开时的动画效果(左右隐藏) */
.leftRight-leave-active {
    animation: leftShow 0.5s reverse;
}
@keyframes leftShow {
    from {
        transform: translate(-100%);
    }
    to {
        transform: translate(0px);
    }
}

/* 进入时的动画效果(上下显示) */
.topBottom-enter-active {
    animation: topShow 0.5s;
}
/* 离开时的动画效果(上下隐藏) */
.topBottom-leave-active {
    animation: topShow 0.5s reverse;
}
@keyframes topShow {
    from {
        transform: translate(0px, -100px);
    }
    to {
        transform: translate(0px, 0px);
    }
}
</style>

:如果不写名称,class 默认以 v- 开头。如果写名称,class 以 名称- 开头。

 

 transition 标签中的 appear 属性:

在 transition 标签上可以添加 appear 属性,它表示页面加载时就执行一次进入的动画效果。

<template>
    <div>
        <button @click="isShow = !isShow">显示/隐藏</button>
        <transition name="leftRight" appear>
            <h2 v-show="isShow">左右滑动</h2>
        </transition>
    </div>
</template>

<script>
export default {
    name: "Home",
    data() {
        return {
            isShow: true
        }
    }
}
</script>

<style scoped>
h2 {
    background-color: aqua;
}
/* 进入时的动画效果(左右显示) */
.leftRight-enter-active {
    animation: leftShow 0.5s;
}
/* 离开时的动画效果(左右隐藏) */
.leftRight-leave-active {
    animation: leftShow 0.5s reverse;
}
@keyframes leftShow {
    from {
        transform: translate(-100%);
    }
    to {
        transform: translate(0px);
    }
}
</style>

:可以在标签上单独写 appear 属性。但是不能直接写 appear="true".

 

原创作者:吴小糖

创作时间:2023.4.25


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/461031.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

USB-C为什么可以取代传统接口?消费类电子产品如何改用TYPE-C接口?

现如今&#xff0c;越来越多的设备选择使用Type-C接口来取代之前传统的接口。例如&#xff1a;手机去掉了之前的Micro USB接口&#xff0c;而选择Type-C&#xff1b;还有好多笔记本也取消了很多传统的传输接口&#xff0c;而采用Type-C来替代它们。那为何Type-C可以取代那么多的…

chatGPT电脑端怎么安装-chatgpt国内怎么用

chatgpt怎么用 ChatGPT是一个大型语言模型&#xff0c;可以用于自然语言生成和理解任务&#xff0c;比如对话系统、文本生成、翻译、摘要等。您可以使用以下步骤来使用ChatGPT: 选择一个平台&#xff1a;ChatGPT可以在不同的平台上运行&#xff0c;比如Python、JavaScript、Jav…

【Java基础练习题】多线程IO流操作实现文件的复制(举一反三)

前言&#xff1a;时不我待&#xff0c;忽而已春&#xff0c;初夏将至。然惊觉自身Java基础仍薄弱不堪&#xff0c;虽“雄关万道真如铁”&#xff0c;只得“万里关山从头越”。把基础打扎实才是根本&#xff0c;对于日后的工作而言也是极为重要。通过不断的学习和理解加上手动实…

使用vue2搭建项目的流程

论坛项目 服务器地址: http://172.16.11.18:9090 http://xawn.f3322.net:10004/ swagger地址: http://172.16.11.18:9090/doc.html http://xawn.f3322.net:10004/doc.html 前端h5地址: http://172.16.11.18:9099/h5/#/ http://xawn.f3322.net:10005/h5/# 前端管理系统…

回文自动机(PAM)入门路线 + P3649 【模板】[APIO2014] 回文串(PAM)

个人比较推荐的回文自动机学习路径&#xff1a; 回文自动机学习博客&#xff1a; 回文树&#xff08;讲的最严谨&#xff0c;oiwiki上的&#xff09; 回文自动机&#xff08;Palindrome Automanton PAM&#xff09;&#xff08;讲的最通俗易懂&#xff0c;知乎上的&#xff09…

Docker快速部署springboot项目

有很多开发者在项目部署过程中都会遇到一些繁琐的问题&#xff0c;比如打包、上传、部署等。而使用Docker可以非常方便地解决这些问题。在本文中&#xff0c;将详细讲解如何使用IDEA中的docker打包插件&#xff0c;将代码打包并直接发布到服务器上。这样&#xff0c;我们就可以…

CSS中的 clip 属性

参考&#xff1a;https://baijiahao.baidu.com/s?id1757136902803734131&wfrspider&forpc 作用&#xff1a; clip 属性用来设置元素的形状&#xff0c;用于剪裁绝对定位的元素。当一幅图像的尺寸大于包含它的元素时&#xff0c;clip 属性允许规定一个元素的可见尺寸…

blender 制作城市建筑模型

我不是很会用blender 但是他可以直接制作一篇区域的建筑模型 BlenderGIS插件 城市建筑3D模型自动生成 教程_Zhichao_97的博客-CSDN博客 学习了两种 一种是通过geo.json自己加了一堆mesh 或者geometry 自己用three 做的模型 另一种是用blender 做一个整个的模型直接导入进去 …

Java企业电子招标采购系统源码Spring Boot + Mybatis + 前后端分离 构建企业电子招采平台之立项流程图

项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以及…

LVS+keepalives高可用负载均衡

keepalived是一个基于vrrp协议来实现的LVS服务高可用方案&#xff0c;可解决静态路由器出现的单点故障问题 解决单点故障。 通过主备来保证高可用性&#xff0c; vrrp回忆 vlan区分广播域&#xff0c;vlan if 虚拟接口 vrrp只有一种报文:Advertisement报文&#xff08;通告…

SparkStreaming学习之——无状态与有状态转化、遍历kafka的topic消息、WindowOperations

目录 一、状态转化 二、kafka topic A→SparkStreaming→kafka topic B (一)rdd.foreach与rdd.foreachPartition (二)案例实操1 1.需求&#xff1a; 2.代码实现&#xff1a; 3.运行结果 (三)案例实操2 1.需求&#xff1a; 2.代码实现&#xff1a; 3.运行结果 三、W…

代码在洛谷上跑得慢怎么办?

前言 你有没有试过以下几种情况&#xff1a; 代码在别的OJ上能过&#xff0c;在洛谷上就T了你的代码和同学的几乎相同&#xff0c;但他的AC了&#xff0c;你的却TLE了 遇到这些情况&#xff0c;你可能要花上一个多小时才能解决&#xff0c;甚至难以解决&#xff0c;将问题一…

【springboot-04】ElasticSearch8.7搜索

为什么学&#xff1f;因为它查询速度很快&#xff0c;而且是非关系型数据库 &#xff08;NoSql&#xff09; 一些增删改查已经配置好了&#xff0c;无需重复敲码 ElasticSearch 更新快&#xff0c;本篇文章将主要介绍一些常用方法。 对于 spirngboot 整合 Es 的文章很少&#x…

看了这一篇文章,你还不懂MySQL体系结构,你来找我

前言 工作很长时间了&#xff0c;对于数据库的掌握程度却仅仅停留在表面的CRUD阶段&#xff0c;对于深层次的原理和技术知识了解的少之又少&#xff0c;随着岁数不断的增长。很多时候&#xff0c;出去找工作很迷茫&#xff0c;被面试官问的感觉自己很菜。现在利用工作休息时间&…

微信小程序第五节——登录那些事儿(超详细的前后端完整流程)

&#x1f4cc; 微信小程序第一节 ——自定义顶部、底部导航栏以及获取胶囊体位置信息。 &#x1f4cc; 微信小程序第二节 —— 自定义组件 &#x1f4cc; 微信小程序第三节 —— 页面跳转的那些事儿 &#x1f4cc; 微信小程序第四节—— 网络请求那些事儿 &#x1f61c;作 …

人工智能时代背景下,如何发展与应用自动化测试?

人工智能时代为自动化测试提供了机会和挑战。在发展自动化测试方面&#xff0c;是人工智能领域下的一个应用方向&#xff0c;和无人驾驶、机器人等一样&#xff0c;都是AI技术的应用场景。从技术的发展角度看&#xff0c;自动化测试一共经历了四代发展变化。从最早提出自动化测…

关于 变量

关于局部变量和静态变量&#xff08;基于有一定指针基础&#xff09; #include<stdio.h> void aaa() {int n10;} int main() {printf("%d",n);return 0; } 在这个代码里&#xff0c;很明显会报错&#xff0c;未定义该n标识符&#xff0c;因为这个n是局部变量…

在程序里面执行system(“cd /某个目录“),为什么路径切换不成功?

粉丝提问&#xff1a; 彭老师&#xff0c;问下&#xff0c;在程序里面执行system(“cd /某个目录”)&#xff0c;这样会切换不成功&#xff0c;为啥呢 实例代码&#xff1a; 粉丝的疑惑是明明第10行执行了cd /media操作&#xff0c; 为什么12行执行的pwd > test2.txt 结…

Unity InputField滑动条

InputField增加滑动条效果 类似图中效果 添加一个InputField组件 2 .添加一个Scrollbar放在InputField内 调整属性 调整InputFiled组件属性 需要将Scrollbal添加到InputField的scrollbar上 然后根据美术需求将位置进行调整&#xff0c;记得InputFiled下的Text不要被Scr…

【浓缩概率】浓缩概率思想帮我蒙选择题的概率大大提升!

今天在学习的时候遇到一个很有趣的思想叫作浓缩概率&#xff0c;可以帮我们快速解决一下概率悖论问题&#xff01; 什么是概率 计算概率有下面两个最简单的原则&#xff1a; 原则一、计算概率一定要有一个参照系&#xff0c;称作「样本空间」&#xff0c;即随机事件可能出现…