用vue写跑马灯效果

用vue,箭头函数写跑马灯效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>跑马灯效果</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <input type="button" value="浪起来" @click="lang">
        <input type="button" value="低调" @click="stop">
        <h4>{{msg}}</h4>
    </div>

    <script>
        // 清理定时器id时,最好放在data里面
        var vm = new Vue({
            el:"#app",
            data:{
                msg:"猥琐发育,别浪~~!",
                intervalId: null,//定时器id
            },
            methods:{
              lang () {
                //箭头函数的里面的this永远指向本实例的(var vm = new Vue({}))的this
                // 判断一下intervalId  是不是为null
                // if(this.intervalId != 'null') return;
                if(this.intervalId != null) return;
                this.intervalId = setInterval(()=>{
                    //   获取第一个字符串
                    var start = this.msg.substring(0,1)
                    // 获取除了第一个剩下的字符串
                    var end = this.msg.substring(1)
                    // 重新拼接得到的字符串,并赋值给 this.msg
                    this.msg = end + start
                },400)
              },
              stop () {
                clearInterval(this.intervalId)
                // 每当清除了定时器之后
                this.intervalId = null
              }
            }
        })
    </script>
</body>
</html>

你可能感兴趣的:(vue)