从零开始的VUE.js学习(二)

实现跑马灯效果

先贴上代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app" class="jk" >
    <input type="button" value="run" @click="running">
    <input type="button" value="defeat" @click="stop">
    <h1>{{msg}}</h1>
</div>
</body>
<script>
    var vm = new Vue({
        el:'#app',
        data:{
            msg:"你在教我做事?",
            intervalid:null
        },
        methods:{
            running:function () {
                if (this.intervalid !=null)return;
                var this_ = this
                this_.intervalid = setInterval(function () {
                    var start = this_.msg.substring(0,1)
                    var end = this_.msg.substring(1)
                    this_.msg = end +start
                },400)
            },
            stop:function () {
                clearInterval(this.intervalid)
                this.intervalid = null
            }
        }

    })

</script>
</html>

首先实现这个跑马灯效果我们需要获取h1标签中的字符串,这里我们new一个Vue对象,在data中保存字符串的值,然后我们需要对字符串进行切割,把第一个字符放入最后一个字符的后面,这里用到函数substring(start,stop)来做这件事,截取完之后把两个字符串拼接,组成新的msg。

之后,我们要做的就是让这个字符串跑起来,也就是每隔一段时间就执行一次,这里我们用到计时器函数(这里不知道es6所以没用箭头),每隔400ms就执行一次,因为用到了计数器函数,所以之前this本来是指向Vue的现在变成指向setInterval,所以需要将上面的Vue的this的值赋给this_,这时候基本的操作完成了,但是这个跑马灯会随着你点击按钮的次数越来越快,限制这个我们需要让他返回上一个执行,这里加入判断参数intervalid,将setInterval的id无限返回即可。

接下来就是暂停函数stop,直接采用clearInterval清空intervalid并将intervalid设置为null,这样暂停后即可继续,否则因为clearInterval暂停了计时,跑马灯就跑不起来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值