03-跑马灯效果

<!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>Document</title>
</head>
<body>
    
    <div id="app">
        <h3>{{message}}</h3>
        <input type="button" value="开始" @click="doStart">
        <input type="button" value="停止" @click="doStop">
    </div>

</body>
<script src="lib/vue.min.js"></script>
<script>
    // 在vm实例中 如果想要获取data中的数据 或者想要调用methods中的方法 必须调用this.属性名 或者this.方法名 进行访问
    // 这里的this就表示我们new出来的vm对象实例


    // 注意 VM实例,会监听自己身上 data 中所有数据的改变,只要数据一发生变化,就会自动把最新的数据 从data身上同步到页面中去 --> 好处:程序员只需要关心数据 不需要考虑如何重新渲染DOM页面
    var vm = new Vue({
        el:'#app',
        data:{
            message:'我是一个跑马灯~~跑呀跑呀跑~~~',
            intervalId :null,
        },
        methods:{
           doStart(){
               // 如果已经有定时器在运行了 则不能再开启新的定时器
               if(this.intervalId != null){
                   return
               }
               // => 这个符号 可以使用this调用data的属性 而不需要重新定义变量来使用data的属性
                this.intervalId = setInterval(() => {   // 内部的 this 与外部的this保持一致
                    var start = this.message.substring(0,1)
                    var end = this.message.substring(1)
                    this.message = end + start
                },300)
           },
           doStop(){
               clearInterval(this.intervalId)
               // 清空计时器后 需要 重新给intervalId赋值 否则不能再次运行
               this.intervalId = null;
           }
        }
    })

</script>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值