鼠标放上去没反应

来源:3-1 JS缓冲动画

不知所语

2016-06-20 23:41

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    *{
        margin: 0;
        padding: 0;
    }

    #div1{
        width: 200px;
        height: 300px;
        background-color: yellow;
    }

    </style>
    <script type="text/javascript">
        window.onload = function(){
            var div1 = document.getElementById("div1");
            div1.onmouseover = function(){
                startMove(0);
            }

            div1.onmouseout = function(){
                startMove(-200);
            }
        }

        var timer = null;
        function startMove(itarget){
            clearInterval(time);
            var div1 = document.getElementById('div1');
            timer = setInterval(function(){
                var speed = (itarget-div1.offsetLeft)/20;
                speed = speed > 0? Math.ceil(speed) : Math.floor(speed);
                if(div1.offsetLeft == itarget){
                    clearInterval(timer);
                }else{
                    div1.style.left = div1.offsetLeft + speed + 'px';
                }


            }, 30)
        }

    </script>
</head>
<body>
    <div id="div1"></div>
    
</body>
</html>

写回答 关注

2回答

  • 萧雁翎
    2016-06-22 08:51:37

    不好意思我看错了,应该是你用了style.left却没有用绝对定位,你在#div1样式里加一句position:absolute应该就行了。

  • 萧雁翎
    2016-06-21 11:53:08

    offsetLeft属性是只读的,直接赋值没用

    萧雁翎 回复不知所语

    position:absolute应该就行了。

    2016-06-22 08:50:16

    共 2 条回复 >

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113923 学习 · 1443 问题

查看课程

相似问题