当前位置: 首页 > news >正文

Vue55 动画与过度

Vue封装的过度与动画

  1. 作用:在插入、更新或移除 DOM元素时,在合适的时候给元素添加样式类名。

  2. 图示:

  3. 写法:

    1. 准备好样式:

      • 元素进入的样式:
        1. v-enter:进入的起点
        2. v-enter-active:进入过程中
        3. v-enter-to:进入的终点
      • 元素离开的样式:
        1. v-leave:离开的起点
        2. v-leave-active:离开过程中
        3. v-leave-to:离开的终点
    2. 使用<transition>包裹要过度的元素,并配置name属性:

      <transition name="hello"><h1 v-show="isShow">你好啊!</h1>
      </transition>
      
    3. 备注:若有多个元素需要过度,则需要使用:<transition-group>,且每个元素都要指定key值。

    4. www.npmjs.com

代码

Test.vue

<template><div><button @click="isShow = !isShow">显示/隐藏</button><transition name="hello" appear><h1 v-show="isShow">你好啊!</h1></transition></div>
</template><script>export default {name:'Test',data() {return {isShow:true}},}
</script><style scoped>h1{background-color: orange;}.hello-enter-active{animation: atguigu 0.5s linear;}.hello-leave-active{animation: atguigu 0.5s linear reverse;}@keyframes atguigu {from{transform: translateX(-100%);}to{transform: translateX(0px);}}
</style>

Test2.vue

<template><div><button @click="isShow = !isShow">显示/隐藏</button><transition-group name="hello" appear><h1 v-show="!isShow" key="1">你好啊!</h1><h1 v-show="isShow" key="2">尚硅谷!</h1></transition-group></div>
</template><script>export default {name:'Test',data() {return {isShow:true}},}
</script><style scoped>h1{background-color: orange;}/* 进入的起点、离开的终点 */.hello-enter,.hello-leave-to{transform: translateX(-100%);}.hello-enter-active,.hello-leave-active{transition: 0.5s linear;}/* 进入的终点、离开的起点 */.hello-enter-to,.hello-leave{transform: translateX(0);}</style>

Test3.vue

<template><div><button @click="isShow = !isShow">显示/隐藏</button><transition-group appearname="animate__animated animate__bounce" enter-active-class="animate__swing"leave-active-class="animate__backOutUp"><h1 v-show="!isShow" key="1">你好啊!</h1><h1 v-show="isShow" key="2">尚硅谷!</h1></transition-group></div>
</template><script>import 'animate.css'export default {name:'Test',data() {return {isShow:true}},}
</script><style scoped>h1{background-color: orange;}</style>

App.vue

<template><div><Test/><Test2/><Test3/></div>
</template><script>import Test from './components/Test'import Test2 from './components/Test2'import Test3 from './components/Test3'export default {name:'App',components:{Test,Test2,Test3},}
</script>

main.js

//引入Vue
import Vue from 'vue'
//引入App
import App from './App.vue'
//关闭Vue的生产提示
Vue.config.productionTip = false//创建vm
new Vue({el:'#app',render: h => h(App),beforeCreate() {Vue.prototype.$bus = this},
})

运行

在这里插入图片描述


http://www.mrgr.cn/news/10922.html

相关文章:

  • 【openwrt-21.02】openwrt-21.02 T750 按键GPIO自动进入刷机模式功能实现
  • 热点 | 爆款游戏的诞生与游戏出海的持续增长
  • Redis应用
  • 等保测评与企业风险管理:构建坚实的信息安全防线
  • threejs 创建CSS3DSprite精灵标签, 可以更新位置及内容(封装)
  • 编程之路:在Bug的迷宫中寻找出口
  • 【限时秒杀】基于SpringBoot+Vue的智慧旅游攻略系统+LW示例参考
  • 二分查找算法:朴素二分+左右边界二分力扣实战应用
  • 邻接表的具体实例
  • bat 文件, 简化git 操作
  • QT通过信号传递参数至槽函数(不通层级通信)
  • 如何使用ssm实现基于ssm的“游侠”旅游信息管理系统
  • MySql【数据查询语言DQL】
  • 生产环境中MapReduce的最佳实践
  • 消息队列MQ
  • Large Bin Attack 源码调试
  • 爬虫使用代理IP:提升数据抓取效率的实践
  • React 入门第一天:从Vue到React的初体验
  • ECharts tooltip默认html样式,保留样式只对数据数值格式化
  • 数据结构之串与KMP算法详解