A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

写在前面:

在页面每隔一段时间实现一个动态功能时可以使用定时器,setTimeout()和setInterval()方法详解:点击打开链接

注意事项:

1.定时器有返回值,返回的是定时器的编号

2.多次调用定时器可以产生多个定时器,产生的页面效果是循环的功能越来越快

3.清除定时器方法clearTimeout()和clearInterval()只能清楚对应定时器产生的最后一个编号(如果多次调用之后使用清除定时器方法只能清除最后一个定时器,
之前的定时器仍然可以继续运行。所以需要提前调用一次清除器,防止重复调用产生定时器。)
主要代码:

<body>
        <button id="btn-start">Start</button><button id="btn-stop">Stop</button><br>
        <img src="images/1.png" alt="" id="pic">
        <script type="text/javascript">
                /*
                        页面上有两个按钮 “开始”  “停止”,一个图片
                        1.当点击“开始”按钮时,图片每个两秒切换一次(共有四张图片,循环切换)
                        2.点击停止时,停止切换
                */


                var btn1=document.getElementById('btn-start');
                var btn2=document.getElementById('btn-stop');
                var pic=document.getElementById('pic');
                var index=1;//图片名称编号  默认显示第一张
                var timer;

                //开始
                btn1.onclick=function(){
                        clearInterval(timer);//清除上一个定时器
                        timer=setInterval(function(){
                                index++;
                                //最后一张
                                if(index==5){
                                        index=1;
                                }
                                pic.src='images/'+index+'.png';
                        },1000);
                };
                //结束
                btn2.onclick=function(){
                        clearInterval(timer);
                };

</body>
写在最后:

当两个函数需要同一个变量时需要提前定义为全局变量,如果只在一个函数中未声明直接赋值然后利用系统提升为全局变量的话容易出错,不建议使用。
---------------------
【转载,仅作分享,侵删】
作者:Ryan Ji
原文:https://blog.csdn.net/qq_42451979/article/details/81040928
版权声明:本文为博主原创文章,转载请附上博文链接!

1 个回复

倒序浏览
奈斯,感谢分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马