Vue实战项目1:跑马灯效果
目录
- 一、效果预览
- 二、编写思路
- 三、整体代码展示
一、效果预览
二、编写思路
- 两个按钮用于启动和停止,绑定点击事件,使用v-on,可以简写为@
<input type="button" value="跑起来" @click="run"/>
<input type="button" value="停下来" @click="stop"/>
- 在按钮的事件处理函数中,首先拿到msg字符串,然后调用字符串的substring来进行字符串截取操作,即,截取第一个字符,放到最末尾处。
var start = this.msg.substring(0, 1)
var end = this.msg.substring(1)
this.msg = end + start
- 使用定时器实现自动重复截取和拼接的功能。
setInterval(() => {var start = this.msg.substring(0, 1)var end = this.msg.substring(1)this.msg = end + start
},200)
- 为了确保定时器不会重复叠加开启,在data中定义intervalId,确保定时器状态
<script>var vm = new Vue({el: '#app',data: {msg: '恐龙抗狼,抗狼抗~',intervalId: null},methods:{run(){if(this.intervalId != null)return;this.intervalId = setInterval(() => {var start = this.msg.substring(0, 1)var end = this.msg.substring(1)this.msg = end + start},200)},stop() {clearInterval(this.intervalId)this.intervalId = null}}})
</script>
三、整体代码展示
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>跑马灯效果</title><script src="lib/vue-2.4.0.js"></script></head><body> <div id="app"><input type="button" value="跑起来" @click="run"/><input type="button" value="停下来" @click="stop"/><h4>{{ msg }}</h4></div><script>var vm = new Vue({el: '#app',data: {msg: '恐龙抗狼,抗狼抗~',intervalId: null},methods:{run(){if(this.intervalId != null)return;this.intervalId = setInterval(() => {var start = this.msg.substring(0, 1)var end = this.msg.substring(1)this.msg = end + start},200)},stop() {clearInterval(this.intervalId)this.intervalId = null}}})</script></body>
</html>
本篇博客为本人学习Vue时的详细笔记,如有错误之处,还望各位指正。
文章为原创,如要转载请注明出处