2013-04-29 79 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開始抽搐。