2013-04-29 78 views
2

我有这个简单的jQuery悬停效果,它可以工作,但并不完美 - 当您输入列表项目(悬停)时,动画会产生一个小小的混乱/碰到底部,为什么?然而,当离开的元素,动画流畅(浏览器中使用 - 铬)jQuery .hover()动画不平滑 - 小凹凸/悬停效果抖动

HTML:

<div id="div1"> 
<ul> 
    <li><a>JP Links</a></li> 
    <li><a>JP Middel</a></li> 
    <li><a>JP Regs</a></li> 
</ul> 
</div> 

的jQuery:

$('#div1 ul li').hover(
    function(){ 
     $(this).find('a').animate({'top': '0'}, 'slow'); 
    }, 
    function(){ 
     $(this).find('a').animate({'top': '75%'}, 'slow'); 
    }     
); 

FIDDLE

+0

箱子首先放到底部,这就是给你印象的凹凸...... – jackJoe 2013-04-29 20:02:11

回答

3

这是由于这样的事实那你只能顶顶:0。请尝试写作顶部:0%像这样:

$(this).find('a').animate({'top': '0%'}, 'slow'); 

我不知道为什么,但它的工作。

+2

+1,我的[小提琴](http://jsfiddle.net/HTLRS/96/)证明了它! – adeneo 2013-04-29 20:03:41

+0

我想这是因为CSS上的'top'正在使用百分比... – jackJoe 2013-04-29 20:04:39

+0

哇,从来没有想过它可以...谢谢 – DextrousDave 2013-04-29 20:09:38

0

将第一个函数中的'0'更改为'10%'在它恢复之前,从0开始抽搐。