不会动,代码一样,就是不会动

来源:4-1 JS多物体动画

你说我是慕粉

2016-11-29 20:22

<!DOCTYPE html>
<html>
<head>
    <title>huoqu</title>
</head>
<style type="text/css">
    body,ul,li{
        margin: 0;
        padding: 0;
    }
    ul,li{
        list-style: none;

    }
    ul li{
        width: 200px;
        height: 100px;
        background: blue;
        margin-bottom: 20px;
    }
</style>
<script type="text/javascript">
    window.onload=function(){
        var ai=document.getElementsByTagName('li');
        for(var i=0;i<ali.length;i++){
            ai[i].timer=null;
            ai[i].onmouseover=function(){
                starmove(this,400);
            }
            ai[i].onmouseout=function{
                starmove(this,200);
            }
        }
    }
function starmove(obj,target){
    clearInterval(obj.timer);
    obj.timer=setInterval(function(){
        var speed=(target-obj.offsetWidth)/8;
        speed=speed>0?Math.ceil(speed):Math.floor(speed);
        if(obj.offsetWidth==target){
            clearInterval(obj.timer);
        }
        else{
            obj.style.width=obj.offsetWidth+speed+'px';
        }
    },30);
}
</script>
<body>
<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>
</body>
</html>

写回答 关注

6回答

  • Hei_a
    2016-12-07 16:16:21

    ai[i].onmouseout=function(){}少了一个括号  好友出现问题 在网页上右击检查元素  可以很快发现问题 望采纳

  • 慕粉3126759
    2016-12-04 00:15:17

    http://img.mukewang.com/5842ef7c0001080d04450294.jpg

    变量写错了

    你说我是慕粉

    已经好了Y(^o^)Y,不知道为什么,变量改过来还是错了,再打一遍就好了Y(^o^)Y,谢谢,晚安

    2016-12-04 01:50:58

    共 1 条回复 >

  • 慕仔2791819
    2016-12-02 16:26:11

    我也遇到这样的问题了!代码一样,就是不动。

    <!DOCTYPE html>

    <html>

    <head>

    <title></title>

    <style type="text/css">

    *{margin: 0;padding: 0;}

    ul,li{list-style-type: none;}

    ul li{

    width: 200px;

    height:100px;

    background: yellow;

    margin-bottom: 20px;

    }

    </style>

    <script type="text/javascript">

    window.onload=function(){

    var aLi=document.getElementsByTagName('li');

    for(var i=0;i<aLi.length;i++;){

    aLi[i].onmouseover=function(){

    startMove(this,400);

    }

    aLi[i].onmouseout=function(){

    startMove(this,200);

    }

    }

    }

    var timer=null;

    function startMove(obj,iTarget){

    clearInterval(timer);

    timer=setInterval(function(){

    var speed=(iTarget-obj.offsetWidth)/8;

    speed=speed>0?Math.ceil(speed):Math.floor(speed);

    if(obj.offsetWidth==iTarget){

    clearInterval(timer);

    }

    else{

    obj.style.width=obj.offsetWidth+speed+'px';

    }

    },30)

    }

    </script>

    </head>

    <body>

    <ul>

    <li></li>

    <li></li>

    <li></li>

    </ul>

    </body>

    </html>


    慕仔2791... 回复慕粉3126...

    谢谢老板!

    2016-12-10 13:41:04

    共 2 条回复 >

  • qq_HUCOath
    2016-11-29 23:44:51

    我放你的代码进去编辑器看了,onmouseout是对的,但是他没有高亮显示 你重新打一遍就好,不需要纠结

    附上完整代码

    <!DOCTYPE html>

    <html>

    <head>

        <title>huoqu</title>

    </head>

    <style type="text/css">

        body,ul,li{

            margin: 0;

            padding: 0;

        }

        ul,li{

            list-style: none;


        }

        ul li{

            width: 200px;

            height: 100px;

            background: blue;

            margin-bottom: 20px;

        }

    </style>

    <script type="text/javascript">

        window.onload=function(){

            var ai=document.getElementsByTagName('li');

            for(var i=0;i<ai.length;i++){

                ai[i].timer=null;

                ai[i].onmouseover=function(){

                    starmove(this,400);

                    }

                ai[i].onmouseout=function(){

                    starmove(this,200);

                    }

                }

            

        }

    function starmove(obj,target){

        clearInterval(obj.timer);

        obj.timer=setInterval(function(){

            var speed=(target-obj.offsetWidth)/8;

            speed=speed>0?Math.ceil(speed):Math.floor(speed);

            if(obj.offsetWidth==target){

                clearInterval(obj.timer);

            }

            else{

                obj.style.width=obj.offsetWidth+speed+'px';

            }

        },30);

    }

    </script>

    <body>

    <ul>

        <li></li>

        <li></li>

        <li></li>

    </ul>

    </body>

    </html>

    望采纳,晚安

    你说我是慕粉

    今天试了,还是不行。。。

    2016-11-30 18:35:45

    共 3 条回复 >

  • qq_HUCOath
    2016-11-29 21:38:15

    那个for循环那个ali写错了,单词

     var ai=document.getElementsByTagName('li');
            for(var i=0;i<ai.length;i++){
                ai[i].timer=null;
                ai[i].onmouseover=function(){
                    starmove(this,400);
                }
                ai[i].onmouseout=function{
                    starmove(this,200);
                }
            }

    你说我是慕粉

    改了,没用

    2016-11-29 21:39:55

    共 1 条回复 >

  • 笑声怜人
    2016-11-29 21:21:41

    三个li会不会获取的时候出了问题,你给它们设个id试试

    你说我是慕粉

    没用啊,那个getelmentsbytagname不是获取标签名吗?跟这有关系吗?

    2016-11-29 21:34:06

    共 1 条回复 >

JS动画效果

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

113925 学习 · 1443 问题

查看课程

相似问题