JS 定时器 setTimeout 与 setInterval 的区别和用法


定时器:

window.setTimeout(function(){},间隔时间毫秒); 

                           -- 定时炸弹,延迟执行,只执行一次

window.setInterval(function(){},间隔的时间毫秒);
                                                              

                           -- 无限循环,每一次循环有间隔时间,一般不要小于20毫秒
                           -- 它是有返回值的,可以用一个变量来接收这个定时器对象

window.clearInterval(要关闭的定时器对象);

                            -- 一旦执行这句代码,会立刻停止此定时器对象的执行

offset

                 -- 当前即时的对象的高度、宽带、位置,

                 -- 直接到浏览器上去找

对象.offsetWidth      -- 当前的宽带

对象.offsetHeight     -- 当前的高度

对象.offsetLeft         --当前距离左侧位置

对象.offsetTop          --当前距离上方位置

对象.offsetParent     -- 当前起点位置 

 

对象.style.样式

                 -- -- Js 只能获取到内联的样式,无法获取 CSS表中的样式

 

例题 1

    点击按钮,按钮本身的长度发生变化,并且位置移动

<html >
<head>
    <title></title>

    <style type="text/css">
        #a {
            position:absolute;
        }
    </style>

</head>
<body>
   
      <input type="button" value="按钮" id="a" />

</body>
</html>

<script type="text/javascript">

    var v = document.getElementById('a')

    v.onclick = function () {

        v.style.width = v.offsetWidth   100   "px";     --长度改变

        v.style.left = v.offsetLeft   100   "px";            -- 位置移动

    }


</script>
View Code

        -- 位置发生改变时必须要有定位

 

例题2

     点击按钮,按钮本身的长度、位置持续变化

<!DOCTYPE html>
<html >
<head>   
    <title></title>

    <style type="text/css">
        #a {
            position:absolute;
        }
    </style>

</head>
<body>

    <input type="button" value="按钮" id="a" />

</body>
</html>

<script type="text/javascript">

    var v = document.getElementById('a')

    v.onclick = function () {
        window.setInterval(function () {
             v.style.width = v.offsetWidth   10   "px";
             v.style.left = v.offsetLeft   10   "px";
        }, 20)      
    }

</script>
View Code

 

 -- 想让按钮向左跑,变为  -10就可以,上下同理

 

例3

   在例2的基础上让定时器停下

<html >
<head>
    <title></title>

    <style type="text/css">
        #a {
            position:absolute;
        }
    </style>

</head>
<body>

    <input type="button" value="按钮" id="a" />

</body>
</html>

   <script type="text/javascript">

    var v = document.getElementById('a')

       v.onclick = function () {
         
       var t=  window.setInterval(function () {

            if (v.offsetLeft >500)
            {
                window.clearInterval(t)
            }

            v.style.width = v.offsetWidth   10   "px";

            v.style.left = v.offsetLeft   10   "px";
        }, 20)     
    }

</script>
View Code

-- 先用 var t; 接收 window.setInterval 的值,这个值就是定时器对象

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值