(三)纯 CSS 进场/离场动画的问题
2023-06-13 09:17:09 时间
使用纯 css
实现进场/离场动画的问题
说明
- 使用
css
虽然可以实现大部分的动画,但是很多复杂的动画还是需要使用javasctipt
来实现 - 对于使用
v-if
来控制的元素,添加动画会更加棘手
<!-- 通过v-if 来控制 动画过度的问题 -->
<template>
<main>
<div class="container">
<button @click="show = !show">{{ show ? "隐藏" : "显示" }}</button>
<div v-if="show" :class="animationClasses"></div>
</div>
</main>
</template>
<script setup>
import { ref, watchEffect } from "vue";
// 控制元素的显示与隐藏
const show = ref(false);
// 动态设置class
const animationClasses = ref(["box"]);
watchEffect(() => {
if (show.value) {
// 显示添加这个动画
animationClasses.value = ["box", "box-enter"];
} else {
// 不显示添加这个动画
animationClasses.value = ["box", "box-leave"];
}
});
</script>
<style>
.box-enter {
animation: fade 0.5s;
}
.box-leave {
animation: fade 0.5s reverse;
}
@keyframes fade {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
</style>
- 发现 显示的时候,可以淡出有动画,但是隐藏的时候就没有动画了,这是因为 v-if 是直接就将 dom 元素移除了执行不了动画了,如果要执行离场的画的话,就需要通过 js 来控制当 dom 元素动画执行完毕了在移除
相关文章
- js 动画:碰撞检测
- css规则定义的分类,CSS规则定义英汉对照表[通俗易懂]
- 怎么创建css样式表,怎样创建可反复使用的外部CSS样式表?[通俗易懂]
- 在html中加入外部css样式,如何引入CSS样式表?
- CSS媒体查询_css网页
- iOS动画小知识:定点缩放弹窗(利用锚点anchorPoint进行实现)包含完整demo[通俗易懂]
- 使用html css实现180箭头旋转,纯CSS实现箭头旋转「建议收藏」
- 网站加开屏动画css引入版
- 【CSS教程】紫色渐变登陆布局html+css代码
- CSS 网页动画
- js定时读取消息,并弹出动画效果的提示信息详解编程语言
- css动画与js动画的区别详解编程语言
- Linux系统比肩专业软件,制作神奇动画(linux动画制作)
- css动画 文字闪烁效果详解编程语言
- CSS与MySQL合力提升网页性能(css与mysql结合)
- MySQL登陆系统CSS实现一键登录(css mysql登陆)
- CSS规则层叠的应用css必须要注意的几点
- CSS教程之css选择器、属性、值
- javascript流畅动画实现原理
- 简单的加密css地址防止别人下载你的CSS文件的方法
- juqery学习之六CSS--css、位置、宽高
- 在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)