2012-01-16 61 views
0

我有下面的代碼:如何使這個搖動效果表現?

jQuery.fn.shake = function(intShakes, intDistance, intDuration) { 
    this.each(function() { 
     $(this).css("position","relative"); 
     for (var x=1; x<=intShakes; x++) { 
     $(this).animate({left:(intDistance*-1)}, (((intDuration/intShakes)/4))) 
     .animate({left:intDistance}, ((intDuration/intShakes)/2)) 
     .animate({left:0}, (((intDuration/intShakes)/4))); 
     } 
    }); 
return this; 
}; 

的問題是,當我應用它,如果對象是在中心絕對定位,它使對象跳轉到頁面的左側。

這個問題能解決嗎?以及如果它可以?

+0

匈牙利符號是醜陋的。使用完整的類型名稱而不是縮寫更糟糕。 – ThiefMaster 2012-01-16 16:35:09

+0

這不是我的代碼,我在堆棧中找到它,我想知道是否可以使用它而不是jQuery的UI lib效果,我不想包含很多庫,我只想使用jQuery用戶界面,我發現這段代碼,我認爲會做的伎倆,所以再次,我沒有這樣的代碼:) – Roland 2012-01-16 16:38:10

回答

3

我認爲使用「保證金左」,而不是在你的動畫風格的「左」會有更好的效果。您可能需要玩的相對位置等。如果它不工作第一次

1

要設置$(this).css("position","relative");。通過設置position: relative,您可以將元素移回文檔流中的任何可能屬於的位置,然後相對於該位置進行定位。

在絕對定位元素的情況下,你需要讓他們絕對和計算基於移動其當前位置。