热门关键字:
jquery > jquery教程 > html5 > vue.js--字符串跑马灯

vue.js--字符串跑马灯

409
作者:管理员
发布时间:2020/3/20 10:53:44
评论数:0
转载请自觉注明原文:http://www.jq-school.com/Show.aspx?id=1073

制作一个字符串的跑马灯效果
(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。





如果您觉得本文的内容对您的学习有所帮助:支付鼓励



关键字:HTML5
友荐云推荐