• 9.vue-transition 过渡动画


    1、
    transition:vue中得一个内置组件
    实现得是组件得过渡效果
    实现上:直接添加css得类名、使用钩子函数实现

    2、

    使用步骤:
    用transition组件,把想要实现过渡效果得元素包裹起来
    写上对应得实现过渡效果得css即可

    3、t

    ransition实现原理:
          1、会自动探查包裹得元素是否有css得动画或过渡效果,有得话会自动添加或删除css得类名
          2、是否有钩子函数,有得话在指定得时间调用钩子函数
          3、都没有,直接执行

    4、

    每一个transition组件都有一个name属性,这个name属性,是用来告诉浏览器哪一个transition组件需要加上指定得过度效果
    <transition name="test"></transition>
    .test-enter:开始进去状态
    .test-enter-active:整个运行得状态
    .test-leave:离开开始状态
    .test-leave-active:整个运行得状态
    .test-leave-to:整个运行状态得(更强调得是结束状态)
    .test-enter-to:整个运行得状态(更强调得是结束状态)
    .test-move:移动得时候设置得
    不需要使用类名得时候name属性就可以不加

    5、

    使用钩子函数:
    before-enter
    enter
    after-enter
    enter-cancelled
    before-leave
    leave
    after-leave
    leave-cancelled
    如果使用得是钩子函数得方式实现得过渡,那么这些钩子函数给transition加


    5、在使用transition得时候如果想要遍历得列表,那么要把transition改成transition-group
    tag属性:代表得是包裹所有元素得最外层元素

    例:

    <template>
      <div id='app'>
           <!-- <button type="button" @click="toggle">按钮</button> -->
           <!-- <transition name="fadeA">
                  <div id="div1" v-show="isShow"></div>
           </transition> -->
           <button type="button" @click="toggle">按钮</button>
            <transition @before-enter="beforeEnter" @enter="enter" @after-enter="afterEnter"
            @before-leave="beforeLeave">
                  <div id="div1" v-show="isShow"></div>
           </transition>
       
      </div>
    </template>
    
    <script>
    import $ from "jquery"
    export default {
      name: 'App',
      data(){
        return {
            isShow: false
        }
      },
      methods: {
        toggle () {
          this.isShow = !this.isShow
        },
        beforeEnter (el) {            // 这是使用钩子函数
          console.log ("开始进入")
           el.style.opacity = 0
        },
        enter (el,done) {  //done 是否要向下继续执行,如果没有自动向下。
          console.log ("进入")
          el.style.opacity =0.5
          setTimeout(function(){
            done()
          },5000)
        },
        afterEnter (el) {
           console.log ("进入之后")
          el.style.opacity = 1
        },
        beforeLeave(el){
             console.log ("离开之前")
             el.style.opacity = 1
        }
      }
      
      
    
    }
    
    </script>
    
    <style>
    #app{
      font-family: 'Avenir', Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
      margin-top: 60px;
    }
    .test{
      color:skyblue;
    }
    #div1{
       100px;
      height: 100px;
      background: #666;
    }
    /* .fadeA-enter,.fadeA-leave-active{       //这是使用class类
      margin-left:100px ;
      opacity: 0;
    }
    .fadeA-enter-to,.fadeA-leave{
      margin-left:0px ;
      opacity: 1;
    }
    .fadeA-enter-active,.fadeA-leave-active{
      transition: 3s;
    } */
    </style>
  • 相关阅读:
    Mysql 数据库 表中列的操作
    FreeSWITCH版本更新
    shell脚本58问
    Wireshark 与 Tcpdump
    Mysql 中 int(3) 和 int(11) 的区别
    FreeSWITCH 基础
    FreeSWITCH 学习笔记(一)
    Mysql 复制表数据(表结构相同)
    Centos date 设置自定义时间
    Mysql 主键
  • 原文地址:https://www.cnblogs.com/taozhibin/p/13160586.html
Copyright © 2020-2023  润新知