Vue2.0的動畫效果


本文只是結合一些代碼和圖片加強對Vue動畫的理解,更多資料請戳這里

 

結合原生CSS實現動畫

下面是一張圖片,簡單清晰明了是吧^-^

 

下面是一段代碼

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .show-enter-active,.show-leave-active{
            transition: all 0.4s ease;
            padding-left: 10px;
        }
        .show-enter,.show-leave-active{
            padding-left: 100px;
        }
    </style>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
  </head>
  <body>
    <div id="app">
        <button @click="toggle">點擊隱藏和顯示</button>
      <transition name="show">
          <h3 v-show="isshow">{{message}}</h3>
      </transition>
    </div>

    <script>
      new Vue({
        el: '#app',
        data: {
          message:"hello Vue!",
          isshow:false
        },
        methods:{
            toggle:function(){
                this.isshow = !this.isshow;
            }
        }
      })
    </script>
  </body>
</html>

 

結合animate.css實現動畫

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="http://apps.bdimg.com/libs/animate.css/3.1.0/animate.min.css" />
    <style>
        .show{
            transition: all 0.4s ease;
        }
    </style>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
  </head>
  <body>
    <div id="app">
        <button @click="toggle">點擊隱藏和顯示</button>
      <transition enter-active-class="fadeInRight"
                  leave-active-class="fadeOutRight">
          <div v-show="isshow" class="animated" class="show">{{message}}</div>
      </transition>
    </div>

    <script>
      new Vue({
        el: '#app',
        data: {
          message:"hello Vue!",
          isshow:false
        },
        methods:{
            toggle:function(){
                this.isshow = !this.isshow;
            }
        }
      })
    </script>
  </body>
</html>

 

使用鈎子函數實現動畫效果

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .show{
            transition: all 0.4s ease;
        }
    </style>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
  </head>
  <body>
    <div id="app">
        <button @click="toggle">點擊隱藏和顯示</button>
            <transition @before-enter="beforeEnter" @enter="enter" @after-enter="afterEnter">
                <div v-show="isshow" class="show">{{message}}</div>
            </transition>
    </div>

    <script>
      new Vue({
        el: '#app',
        data: {
          message:"hello Vue!",
          isshow:false
        },
        methods:{
            toggle:function(){
                this.isshow = !this.isshow;
            },
            beforeEnter:function(el){
                //定義當前實現動畫的初始位置
                el.style.transform = "translate(100px,0)";
            },
            enter:function(el,done){
                //設置一下刷新狀態
                el.offsetWidth;
                //設置動畫的結束位置
                el.style.transform = "translate(0px,0)";
                //手動調用一下done方法,由這個方法去決定動畫是否結束了
                //否則動畫的消失會有延遲
                done();
            },
            afterEnter:function(el){
                //將動畫的狀態復原設置
                this.isshow = !this.isshow;
            }
        }
      })
    </script>
  </body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM