码迷,mamicode.com
首页 > 编程语言 > 详细

javascript运动的小Tip。

时间:2015-06-27 22:36:25      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

定时器运用

  setInterval(function,1000)每隔1000毫秒执行一次function
  setTimeout(function,1000)隔1000毫秒执行function(执行一次function)
  clearInterval()   clearTimeout()关闭定时器

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>move</title>
    <style type="text/css">
    #c{
        width: 100px;
        height: 100px;
        background-color: red;
        position: absolute;
    }
    </style>
    <script type="text/javascript">
    var timer=null;  
    function move ( ) {
        var oDiv=document.getElementById("c");
        clearInterval(timer);              
        timer=setInterval(function   ( ) {
            var speed=5;
            if(oDiv.offsetLeft>300){
                clearInterval(timer);
            }
            else{            
            oDiv.style.left=oDiv.offsetLeft+speed+"px";
            }
        },30)
    }
    </script>
</head>
<body>
    <input type="button" value="开始运动" onclick="move()">
    <div id="c"></div>
</body>
</html>

技巧:

  先开启定时器,再关闭定时器。如果事先关闭定时器,点击就会再次新建定时器,多个定时器同时工作,物体运动会加速。
  把运动和停止隔开。如果只使用if,不使用else。在判断大小时候就会再次执行一次运动。

  setInterval(function   ( ) {left=offsetLeft+speed;} ,30)

  调节速度大小时候,应该调节speed大小。30变大的时候会让这个这个运动变“卡”。

  div.style.leftdiv.style.offsetLeft区别

  div.style.left 返回的是字符串,如28px,div.style.offsetLeft返回的是数值28,如果需要对取得的值进行计算,还用offsetLeft比较方便。

  style.left是读写的,offsetLeft是只读的。

  offsetLeft好像更有性格,哈哈。

 

javascript运动的小Tip。

标签:

原文地址:http://www.cnblogs.com/upcircle/p/4604716.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!