当前位置:首页 » 《随便一记》 » 正文

js定时器

27 人参与  2023年05月06日 13:45  分类 : 《随便一记》  评论

点击全文阅读


定时器

js中内置的一个方法

作用

每隔一段时间或者延迟一段时间就执行一段指定的代码

定时器的分类

重复执行定时器

setInterval()

作用

每隔一段时间就会重复执行指定的函数 

语法

setInterval(function(){      代码},时间)

参数

要执行的函数:时间到了就会执行

时间:间隔的时间

单位:毫秒

1s=1000ms

<style>        #box{            width: 100px;            height: 100px;            border: 1px solid red;            font-size: 50px;        }    </style>    <script>    window.onload=function(){        var box=document.getElementById("box");        var i=0;        box.onclick=function(){            setInterval(function(){                box.innerHTML=i;                i++;            },1000);                   };    };</script></head><body>   <div id="box"></div></body>
<style>        #box{            width: 100px;            height: 100px;            border: 1px solid red;            font-size: 50px;        }    </style>    <script>    window.onload=function(){        var box=document.getElementById("box");        var i=0;        box.onclick=function(){          setInterval(change,1000);           //函数在外面定义,这里调用需要用函数名,没有括号()        };        function change(){            i++;            box.innerHTML=i;        }    };</script></head><body>   <div id="box"></div></body>

延迟执行定时器

setTimeout()

作用:延迟执行定时器执行指定函数,只执行一次

语法

setTimeout(function(){        代码},时间);

参数

要执行的函数:当时间到达后会执行这个函数

时间:延迟时间

代码和重复执行定时器很相似

   <style>        #box{            width: 100px;            height: 100px;            border: 1px solid red;            font-size: 50px;        }    </style>    <script>    window.onload=function(){        var box=document.getElementById("box");        var i=0;        box.onclick=function(){            setTimeout(function(){            i++;            box.innerHTML=i;            },1000);                   };           };</script></head><body>   <div id="box"></div></body>

定时器里的this指向

定时器的this指向window的,因为定时器是window身上的一个方法,所以this指向window

<style>        #box{            width: 100px;            height: 100px;            border:1px solid #f00;        }    </style>    <script>        window.onload=function(){            var box=document.getElementById("box");            var i=0;            console.log(this);    //window            box.onclick=function(){                console.log(this); //box                var This=this;//把box存给This,函数内部可以调用                setInterval(function(){                    console.log(this); //window                    i++;                    box.innerHTML=i;                },1000);            };        }    </script></head><body>    <div id="box"></div></body>

清除定时器

定时器的编号

定时器的一个返回值,返回一个数字,代表当前定时器的编号,我们可根据这个来清除定时器

它返回的编号在不同的浏览器里面是不同的,所以没办法直接拿编号去清除定时器

清除定时器的方法

1.清除重复执行定时器

clearInterval(定时器的返回值)

可以声明一个变量,把定时器的返回值都存到这个变量里,然后拿这个变量去清除定时器

   <style>        #box{            width: 100px;            height: 100px;            border:1px solid #f00;        }    </style>      <script>        var n=0;        function add(){            n++;            console.log(n);            //清除定时器的条件一般会放在定时器执行的函数里            if(n==8){                //clearInterval(1);                clearInterval(timer);            }        }        var timer=setInterval(add,1000);        // console.log(setInterval(add,1000)setInterval(add,1000));//1        // setInterval(add,1000);        //定时器在走的过程中,下面代码也会走        alert(1);        if(n==8)    </script></head><body>    <div id="box"></div></body>

                         1.直接把定时器调用放在一个变量赋值的后面,定时器会走吗?

                                timer使用的时候,定时器已经跑了八次了,页面代码已经跑完了

                         var timer=setInterval(add,1000);

                        2.这个timer是在下面声明的,而使用是在上面,可以用到嘛?

2.清除延迟执行定时器

clearTimeout (定时器的返回值)


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/61130.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1