为什么我的jQuery动画效果不起作用?

问题描述:

这是HTML,都在头:为什么我的jQuery动画效果不起作用?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
    <script type="text/javascript" src="jquery.js"></script> 

,其中第二个是我的js文件! 的JS文件看起来是这样的:

$(document).ready(function() { 

    $("li").fadeTo(0, 0.6), 

    $("li").mouseenter(function() { 
     $(this).fadeTo(100, 1), 
     $(this).animate({top: "-=20px"},"fast") 
    }); 
    $("li").mouseleave(function() { 
     $(this).fadeTo(100, 0.6), 
     $(this).animate({top: "=20px"},"fast") 
    }); 


}); 

不透明度的工作,但不是动画,有什么不好?

+0

你缺少一个'+''从顶部: “= 20px的”' – Turnip 2014-10-20 19:28:23

<li>元素需要有fixedrelativeabsolute的位置值,如果您设置动画的top CSS。没有它,动画仍然会完成,但在浏览器中不会看到任何视觉效果。

$(document).ready(function() { 
 

 
    $("li").fadeTo(0, 0.6), 
 

 
    $("li").mouseenter(function() { 
 
     $(this).fadeTo(100, 1), 
 
     $(this).animate({top: "-=20px"},"fast") 
 
    }); 
 
    $("li").mouseleave(function() { 
 
     $(this).fadeTo(100, 0.6), 
 
     $(this).animate({top: "=20px"},"fast") 
 
    }); 
 

 

 
});
li { 
 
    position:absolute; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<ul> 
 
    <li>Item 1</li> 
 
    <li>Item 2</li> 
 
    <li>Item 3</li> 
 
</ul>

+0

或'fixed'或'relative'。 “绝对”会将所有列表元素放在彼此之上,因此这可能不是一个好选择。 – JJJ 2014-10-20 18:54:34

+0

是啊同意 - 更新回答:) – MrCode 2014-10-20 18:56:55

+0

很酷,但代码显然被破坏,如代码片段所证明。 – JJJ 2014-10-20 18:59:57