什么是过渡和动画

元素在显示和隐藏时,实现过渡或者动画的效果,常用的过滤和动画都是使用CSS来实现的。

  • 在CSS中操作transition(过渡)或 animation(动画)达到不同效果
  • 为目标元素添加一个父元素<trasition name="xxx">,让父元素通过自动应用class类名来达到效果
  • 过滤与动画时,会为对应元素动态的添加相关class类名
    • xxx-enter:定义显示前的效果
    • xxx-enter-active:定义显示过程的效果
    • xxx-enter-to:定义显示后的效果
    • xxx-leave:定义隐藏前的效果
    • xxx-leave-active:定义隐藏过程的效果
    • xxx-leave-to:定义隐藏后的效果

过渡效果一

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="./node_modules/vue/dist/vue.js"></script>
<style>
/* 显示或隐藏的过渡效果,zz就是下面定义的name值 */
/* .zz-enter-active进入中,.zz-leave-active离开中的效果 */
.zz-enter-active, .zz-leave-active{
transition: opacity 1s; /* 过渡,渐变效果持续时间为1s*/
} /* 显示前或隐藏后的效果 */
/* .zz-enter进入前,.zz-leave-to离开后 */
.zz-enter, .zz-leave-to{
opacity: 0; /* 都是隐藏效果 */
}
</style>
</head> <body>
<div id="app">
<button @click="show =!show">渐变过渡</button>
<transition name="zz"><!-- name的值自定义,后面要用 -->
<p v-show="show">过渡一</p> <!-- v-show为false就不显示 -->
</transition>
</div>
<script>
new Vue({
el: "#app",
data: {
show: true,
}
})
</script>
</body> </html>

过渡效果二

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="./node_modules/vue/dist/vue.js"></script>
<style>
/* 可以针对显示和隐藏指定不同的效果 */
/* 显示过渡效果1s */
.zz-enter-active{
transition: all 1s; /* all所有属性,持续1s*/
} /* 隐藏过渡效果3s */
.zz-leave-active{
transition: all 3s; /* all所有属性,持续3s */
} /* 显示前和隐藏后的效果 */
.zz-enter, .zz-leave-to{
opacity: 0; /* 都是隐藏效果 */
transform: translateX(10px); /* 水平方向移动10px */
}
</style>
</head> <body>
<div id="app">
<button @click="show =!show">渐变平滑过渡</button>
<transition name="zz"><!-- name的值自定义,后面要用 -->
<p v-show="show">过渡二</p> <!-- v-show为false就不显示 -->
</transition>
</div>
<script>
new Vue({
el: "#app",
data: {
show: true,
}
})
</script>
</body> </html>

动画

CSS动画用法同CSS过渡,只不过采用animation为指定动画效果

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="./node_modules/vue/dist/vue.js"></script>
<style>
/* 显示过程中的动画效果 */
.zz-enter-active{
animation: zz-in 1s;
} /* 隐藏过程中的动画效果 */
.zz-leave-active{
animation: zz-in 1s reverse;
} @keyframes zz-in{
0% { /*持续时长百分比,比如针对1s: 0%代表0秒,50%代表0.5*/
transform: scale(0); /*缩小为0*/
} 50% {
transform: scale(1.5); /*放大1.5倍*/
} 100% {
transform: scale(1); /*原始大小*/
}
} </style>
</head> <body>
<div id="app">
<button @click="show =!show">放大缩小动画</button>
<transition name="zz"><!-- name的值自定义,后面要用 -->
<p v-show="show">我是动画</p> <!-- v-show为false就不显示 -->
</transition>
</div>
<script>
new Vue({
el: "#app",
data: {
show: true,
}
})
</script>
</body> </html>

最新文章

  1. 【React】dva-cli建立脚手架后发现页面样式不对的问题
  2. ASP.NET MVC学前篇之Ninject的初步了解
  3. 转自虫师:性能测试的 Check List
  4. WCF入门(8)
  5. sql执行万条update语句优化
  6. libeXosip2(1-1) -- How-To initialize libeXosip2.
  7. mysql logstash 配置
  8. 基于visual Studio2013解决C语言竞赛题之1093连接链表
  9. angular控制器常用的4种通信方式
  10. Mysql共享锁、排他锁、悲观锁、乐观锁及其使用场景
  11. 【DWM1000】 非官方开源定位代码bitcraze
  12. 异常处理汇总 ~ 修正果带着你的Code飞奔吧!
  13. linq 表分组后关联查询
  14. easy UI的密码长度以及重复输入验证
  15. Python排序算法之冒泡排序
  16. Spring boot(四)thymeleaf使用介绍
  17. MetaMask安装使用指南
  18. bzoj千题计划268:bzoj3131: [Sdoi2013]淘金
  19. Unity获取插件所在目录的巧妙方法
  20. 1、win10下的Docker+Redis 的下载及简单使用

热门文章

  1. Nginx热升级流程,看这篇就够了
  2. Python 分析电影《南方车站的聚会》
  3. 运用Java调用Kettle Job和Trans(带参数)
  4. Cesium专栏-雷达遮罩动态扫描(附源码下载)
  5. 来来来,告诉你一个简单易上手的KPI打分的方子
  6. Python: simple code
  7. Sublime Merge真正的Git客户端
  8. go笔记--rpc和grpc使用
  9. 【SVN搭建】搭建SVN服务
  10. easybcd误删Win10启动项,UEFI恢复引导