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.定时器的开启与关闭。