使用vue模擬購物車小球動畫


使用vue模擬購物車小球動畫

1.效果演示

2.相關代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../js/vue-2.4.0.js"></script>
    <script src="../js/vue-resource-1.3.4.js"></script>
    <link rel="stylesheet" href="../bootstrap-3.3.7-dist/css/bootstrap.min.css">
    <style>
        .ball {
            width: 15px;
            height: 15px;
            border-radius: 50%;
            background-color: red;
        }

    </style>
</head>
<body>
<div id="app">
    <input type="button" value="快到碗里來" @click="flage=!flage">
    <!--1.使用transition元素 把小球包裹起來-->
    <transition
            @before-enter="beforeEnter"
            @enter="enter"
            @after-enter="afterEnter"
    >

        <div class="ball" v-show="flage"></div>

    </transition>
</div>

<script>

    var vm = new Vue({

        el: "#app",
        data: {
            flage: false
        },
        methods: {
            //鈎子函數的第一個參數el:表示要執行動畫的那個元素 是個原生的js dom對象
            //document.getElementById() 可以認為他是通過這種方式獲取的
            beforeEnter:function (el) {
                //beforeEnter表示動畫入場之前 動畫開始 可以再beforeEnter中設置元素的起始樣式
                //設置小球開始動畫以前的起始位置
                el.style.transform="translate(0,0)";
            },
            enter:function (el,done) {
                //這句話沒有實際的作用 但是不寫出不來效果
                //el.offsetWidth可以認為可以強制刷新動畫

                el.offsetWidth
                //enter表示動畫開始之后的樣式這里可以設置小球完成動畫之后的結束狀態
                el.style.transform="translate(150px,450px)";
                el.style.transition="all 1s ease"
                done()
            },
            afterEnter:function (el) {
                //動畫完成后
                this.flage=!this.flage;

            }

        }
    })

</script>
</body>
</html>


免責聲明!

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



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