动画效果没有显示出来,求指错

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

嘻嘻哈哈12138

2016-07-23 14:41

<style type="text/css">

*{margin:0;padding:0;}

ul,li{

list-style:none;

}

    ul li{

width:200px;

height:100px;

background:yellow;

margin-bottom:20px;

}</style>

        <script>

        window.onload=function(){

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

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

odiv[i].timer=null;

odiv[i].onmouseover=function(){

startMove(this,400);}

odiv.onmouseout[i]=function(){

startMove(this,200);}

}

}

function startMove(obj,iTarget){

clearInterval(obj.timer);

obj.timer=setInterval(function(){

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

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

if(alpha==iTarget){

clearInterval(obj.timer);}

else{

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

}

}

,30)

}

        </script>

</head>


<body>

<ul>

<li></li>

<li></li>

<li></li></ul></body>

</html>


写回答 关注

4回答

  • 慕运维9479015
    2022-05-20 06:46:57

    以前都没想过在li里嵌套ul,学习了!

    cejnmfbzuwixsa

  • 嘻嘻哈哈12138
    2016-07-23 19:30:07

    这个错找了好久都没看出来

  • 嘻嘻哈哈12138
    2016-07-23 19:25:43

    非常感谢

  • ypc8272805
    2016-07-23 15:35:17

    你有好几个问题 

    odiv.onmouseout[i]=function(){
    startMove(this,200);}

    这个地方写错了 ,改正一下

    odiv[i].onmouseout=function(){
    startMove(this,200);}

    还有 后面startMove函数中有问题

    if(alpha==iTarget){
    clearInterval(obj.timer);}
    else{
    obj.style.width=obj.offsetWidth+speed+'px';
    }

    改为

    if(obj.offsetWidth==iTarget){
    clearInterval(obj.timer);}
    else{
    obj.style.width=obj.offsetWidth+speed+'px';
    }


JS动画效果

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

113931 学习 · 1443 问题

查看课程

相似问题