标签:最好 ring 速度 oct tin substr 包含 直接 new
通过以下案例的练习,可以掌握:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id=‘app‘>
<input type="button" value="开始" v-on:click="go" />
<input type="button" value="结束" @click="stop" />
<h3>{{msg}}</h3>
</div>
<script>
const vm = new Vue({
el: "#app",
data:{
msg: "我拿BUFF,谢谢!",
intervalId: null //d定时器的ID,默认等于null
},
methods:{
go: function(){ //开始跑马灯效果
//思路:先截去第一个字符,然后吧这个字符放到结尾
// this.msg.substring(起始的索引,结束的索引[不包含结束的索引])
//每次开启定时器前先清除定时器,防止多次点击后只有最后一次点击的定时器ID被保存,
//但是这也会偶问题,当点击速度足够快的时候,一直在清理,跑马灯根本不动
// clearInterval(this.intervalId);
//如果定时器的ID不等于NULL就表示已经有定时器在执行了,此时直接退出这样就不会开启第二个定时器了
if(this.intervalId !== null)return
this.intervalId = setInterval(()=>{
const header = this.msg.substring(0,1);
const body = this.msg.substring(1,);
this.msg = body + header;
},300)
},
stop: function(){ //结束跑马灯效果
clearInterval(this.intervalId);
//每当清除定时器之后,为了保证下次能偶正常开启定时器,所以需要把intervalId重置为null
this.intervalId = null;
}
}
})
</script>
</body>
</html>
标签:最好 ring 速度 oct tin substr 包含 直接 new
原文地址:https://www.cnblogs.com/lqmchn/p/13098631.html