javascript - Interval速度叠加问题
PHP中文网
PHP中文网 2017-04-10 14:53:38
[JavaScript讨论组]

问题一:为什么要定义var time变量。
问题二:每次点击rand按钮为什么会出现速度的叠加问题。
谢谢。

<body>
<button id="red" onclick="change(this)">red</button>
<button id="green" onclick="change(this)">green</button>
<button id="blue" onclick="change(this)">blue</button>
<button id="rand" onclick="change(this)">rand</button>
<button id="stop" onclick="change(this)">stop</button>

    <script>
        //定义定时器变量
        var time = null;
        function change(args){
            console.log(args);
            if(args.id == 'rand'){
                clearInterval(time);
                time = setInterval(function(){                                          
                    document.body.style.backgroundColor = 'rgb('+ Math.floor(Math.random()*256)+','+Math.floor(Math.random()*256)+','+Math.floor(Math.random()*256)+')';
                },1000);
            }else if(args.id == 'stop'){

                clearInterval(time);
            }else{
                document.body.style.backgroundColor = args.id;
            }
        }


    </script>


</body>
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(1)
PHP中文网

定义一个全局变量time,是为保存后续定时器的引用,这样才可以清除定时器,如果不需要清除当然可以不定义

至于你说的叠加问题是什么意思,每次执行rand都会清除之前的定时器,不会产生叠加的,你可以在setInterval方法里打印下执行的时间戳就知道了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号