mackxu
子曰:学而时习之,不亦说乎?

描述:让页面中的一个盒子平稳向右移动到指定位置

<div id="div1">

<div>

JS代码实现

<script type="text/javascript">
    // 实现简单动画
    // 避免获取类似div1.style.left的值
    // 且它的值带有单位px
    var div1 = document.getElementById('div1');
    var left = 0;                    // 实时反映元素的x坐标值
    // 让动画增加x坐标值,使其向右移动
    var toRight = function() {
        // 错误:每次执行时,无需再从div1.style.left获取x坐标的值
        // 因为已经用全局变量left记录了该信息
        // left = div1.style.left;

        // 当盒子到达指定目标后,停止动画
        if (left < 500) {
            left += 1;
        }
        // 为盒子设置的新坐标值
        div1.style.left = left + 'px';
        setTimeout(toRight, 25);
    };
    toRight();                    // 开始动画
</script>

去掉注释后的代码再看看这几行代码

<script type="text/javascript">
    var div1 = document.getElementById('div1');
    var left = 0;
    
    var toRight = function() {
        if (left < 500) {
            left += 1;
        }
        div1.style.left = left + 'px';
        setTimeout(toRight, 25);
    };
    toRight();                    
</script>

小结:

获取DOM样式时,如果样式在style标签中定义不能通过style对象获取的,如div1.style.left,但却可以设置它的值

在获取和设置时,要注意数值带有单位(px)

posted on 2013-06-28 09:27  mackxu  阅读(374)  评论(0编辑  收藏  举报