vue.js(4)--字符串跑马灯

制作一个字符串的跑马灯效果

(1)实例代码

<!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=edge">
    <title>字符串的跑马灯效果</title>
    <script src="../lib/vue.js"></script>
</head>
<body>
    <div class="app">
        <h1 v-text='msg'></h1>
        <input type="button" value="走你" @click="go">
        <input type="button" value="停" @click="stop">
    </div>
    <script>
        var vm = new Vue({
            el:'.app',
            data:{
                msg:'习得前端妙,抱得美人归!',
                timer:null
            },
            methods:{
                go() {
                    // clearInterval(timer);
                    if(this.timer != null){
                        return;
                        } //使用if判断定时器状态,解决重复开启定时器的bug。
                    this.timer=setInterval(() => {  //箭头函数解决this指向问题,箭头函数内部的this相对于外部this的指向。
                    // console.log(this.msg)需要访问data中数据时,一定要使用this,比如this.msg
                    var firstStr=this.msg.substring(0,1);
                    var lastStr=this.msg.substring(1);//截取函数的使用
                    this.msg=lastStr+firstStr;
                },400)
            },
                stop(){
                    clearInterval(this.timer);
                    this.timer=null;
                }
            }
        })
    </script>
</body>
</html>

 

(2)摘要

  实现案例的基本思路是利用substring截取字符串再进行拼接,然后使用定时器来达到动态的效果。

  箭头函数可以解决this的指向问题,箭头函数内部的this相对于外部this的指向。

  需要访问data中数据时,一定要使用this访问,比如this.msg  this.timer。

  注意substring()函数的使用,substring(0,1)表示从0开始截取1位字符,substring(1)表示从1开始截取到最后。

  案例中会出现重复开启定时器的bug,通过定义timer=null,然后判断其状态来解决bug,最后在清除定时器后需要重新赋值timer=null。

  

转载于:https://www.cnblogs.com/qiqisusu/p/11340900.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值