9.跑马灯案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=adge">
    <title>Document</title>
    <script src="vue.js"></script>
</head>
<body>
    <div id="app">
        <input type="button" value="浪起来" @click="lang">
        <input type="button" value="停止" @click="stop">
        <input type="button" value="测试定时器" @click="cs">
        <h3>{{ msg }}</h3>
    </div>
</body>
<script>
    //创建Vue实例,得到ViewModel
    var vm=new Vue({
        el:"#app",
        data:{
            msg:"我拿Buff,谢谢~~",
            intervalId:null //定时器ID
        },
        methods:{
            lang:function(){//开始跑马灯效果
                //思路
                //1.先截取第一个字符,然后把这个字符放到结尾
                //2.this.msg.substring(起始的索引,结束的索引[不包含])
                //3.如果定时器的Id不等于Null,就表示已经有定时器在执行了,此时直接退出,就不会再开启第二个定时器了
                if(this.intervalId!=null) return
                this.intervalId=setInterval(() => {
                const header=this.msg.substring(0,1)
                const body=this.msg.substring(1)//从1开始截取,截取到最后
                this.msg=body+header
                },300)                
            },
            stop:function(){//清除定时器
                //每当清除定时器之后,为了保证下次能够正常开启定时器,所以需要把intervalId重置为null
                clearInterval(this.intervalId)
                this.intervalId=null
            },
            cs:function(){
                //setInterval(() => {
                //console.log(this.msg);
            //}, 100);
            },
        }
    });
</script>
</html>

知识点:

1.字符串的截取。
2.定时器的开启与关闭。

posted @ 2021-03-08 19:18  种太阳  阅读(19)  评论(0编辑  收藏  举报