美文网首页
vue笔记-12(动画钩子函数)

vue笔记-12(动画钩子函数)

作者: 7ColorLotus | 来源:发表于2020-09-17 14:03 被阅读0次

动画-钩子函数实现半场动画的介绍

  • 入场函数和出场函数
         <transition
             v-on:before-enter="beforeEnter"
             v-on:enter = "enter"
             v-on:after-enter="afterEnter"
             v-on:enter-cancelled="enterCancelled"
    
             v-on:before-leave="beforeLeave"
             v-on:leave="leave"
             v-on:after-leave="afterLeave"
             v-on:leave-cancelled="leaveCacelled"
         >
    
  • 钩子函数实现小球半场动画
          methods: {
              beforeEnter(el){
                  //设置小球开始动画之前的起始位置
                  el.style.transform = "translate(0,0)"
              },
              enter(el, done){
                  el.offsetWidth //没有实际的作用,但是不写没有动画效果
                  // enter表示动画 开始之后的样式,这里,可以设置小球完成动画之后的结束状态
                  el.style.transform = "translate(150px,450px)"
                  el.style.transition = 'all is ease'
    
                  done()  //done()函数就是afterEnter函数,done是afterEnter函数的引用
              },
              afterEnter(el){ //动画完成之后调用的函数
                  this.flag = !this.flag
              }
          }
    
    • 动画钩子函数的第一个参数: el,表示要执行动画的那个DOM元素 是个原生的JS DOM对象,可以认为el是通过document.getElementById()方式获取到的原生JSDom对象
    • beforeEnter表示动画入场之前,此时,动画尚未开始,可以在beforeEnter中,设置元素开始动画之前的起始样式

使用transition-group元素实现列表动画

  • 在实现列表过度的时候,如果需要过渡的元素,是通过v-for 循环渲染出来的,不能使用transition包裹,需要使用transition-group
  • 如果要为v-for循环创建的元素设置动画,必须为每一个元素设置:key属性
  • 实现列表后续的元素, 逐渐的漂上来的效果
     .v-move{
         transition: all 0.6s ease;
     }
    
     .v-leave-active{
         position : absollute;
     }
    
  • 给transition-group添加appear属性,实现页面刚展示时候的入场效果
  • 通过为transition-group元素添加tag=“ul”属性,指定transition-group渲染为指定的元素,如果不指定tag属性,默认为span属性

代码演示

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue动画</title>
    <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.min.css">

    <style>
        
        .ball {
            background-color:red;
            width: 50px;
            height: 50px;
            border-radius: 90%; 
            -moz-border-radius: 50%; 
            -webkit-border-radius: 50%;
            margin-top: 10px;
        }
    </style>
</head>

<body>
    <div id="app">
        <input type="button" value="toggle" v-on:click="flag = !flag">

        <!-- <div class="ball" v-show="flag"></div> -->

        <transition
            v-on:before-enter="beforeEnter"
            v-on:enter = "enter"
            v-on:after-enter="afterEnter"
        >
            <div class="ball" v-show="flag"></div>
        </transition>
    </div>

    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                flag: false
            },
            methods: {
                beforeEnter(el){
                    //设置小球开始动画之前的起始位置
                    el.style.transform = "translate(0, 0)"
                    this.flag = true
                },
                enter(el, done){
                    el.offsetWidth //没有实际的作用,但是不写没有动画效果
                    // enter表示动画 开始之后的样式,这里,可以设置小球完成动画之后的结束状态
                    el.style.transform = "translate(150px,450px)"
                    el.style.transition = 'all 2s ease'

                    done() //done()函数就是afterEnter函数,done是afterEnter函数的引用
                },
                afterEnter(el){ //动画完成之后调用的函数
                    this.flag = !this.flag
                }
            }
        })
    </script>
</body>

</html>

相关文章

  • vue笔记-12(动画钩子函数)

    动画-钩子函数实现半场动画的介绍 入场函数和出场函数 钩子函数实现小球半场动画 methods: { ...

  • 2019-01-29vue钩子函数动画

    vue钩子函数 第一组 动画从无到有 @beforeEnter //定义动画的位置 el.style.trans...

  • vue自定义全局指令

    Vue.directive('指令名',{ 钩子函数1(){}, 钩子函数2(){} }) -----------...

  • 动画组件

    用vue自带的 实现过渡效果 利用 CSS 过渡或者动画来实现 利用 JavaScript 的钩子函数...

  • 在Vue中使用动画

    About 之前写过一篇博客:在Vue中使用css动画,里面没讲如何使用JavaScript钩子函数来控制动画效果...

  • vue 获取节点 获取事件

    vue 生命周期 什么是钩子函数 一开始就执行的 就是钩子函数 vue 钩子函数 也称作为生命周期 befor...

  • vue中的钩子函数(二)

    Vue钩子函数 在开发Vue组件时,钩子函数我们会经常用到,但是具体在什么时机,使用哪个钩子函数,会产生什么样的结...

  • 动画钩子函数

    如果想要实现自定义动画,此时就要用到 动画钩子函数 利用钩子函数实现了一个小球的动画:

  • 2021-04-11

    vue-router 路由钩子函数(导航守卫) 路由钩子函数有三种: 全局钩子: beforeEach(全局前置守...

  • Vue视频教程系列第三十五节—路由器里的钩子函数

    路由钩子函数介绍: 我之前有介绍过vue里的钩子函数,有四对,也就是八个钩子函数。在路由里呢,其实也有钩子函数,个...

网友评论

      本文标题:vue笔记-12(动画钩子函数)

      本文链接:https://www.haomeiwen.com/subject/ngulyktx.html