2011-11-07 75 views
6

無論如何,在頁面加載時使div盒子搖晃嗎?也許只是一兩次?在頁面加載時做一個div震動?

更新:在這個URL我還沒有在頁面加載工作,我做錯了什麼? http://tinyurl.com/79azbav

我認爲我卡在onpage負載;該故障可以在這裏看到: Get onpage to work correctly

我也試着開始動畫我已經實現了body onLoad

<body onLoad="document.emvForm.EMAIL_FIELD.focus(); document.ready.entertext.shake();" > 

但仍然未能如飛。

+6

點擊刷新和砸你的顯示器! :) – Louie

+0

我不明白。 –

+0

@Louie多數民衆贊成我的後備爲舊的IE =) –

回答

24

嘗試這樣:

編輯
改變Shake()shake()的一致性與jQuery約定。

jQuery.fn.shake = function() { 
    this.each(function(i) { 
     $(this).css({ "position": "relative" }); 
     for (var x = 1; x <= 3; x++) { 
      $(this).animate({ left: -25 }, 10).animate({ left: 0 }, 50).animate({ left: 25 }, 10).animate({ left: 0 }, 50); 
     } 
    }); 
    return this; 
} 

編輯
在我的例子left位置設置爲25,但你可以減少這種一個更微妙的影響或增加它一個更明顯的效果。

使用shake功能:

$("#div").shake(); 

這裏有一個的jsfiddle演示它:http://jsfiddle.net/JppPG/3/

+0

感謝您的迴應,但我可以在哪裏可以定義這適用於哪個股利? –

+0

@Truth:感謝您的演示。 –

+0

@LouieLouie:這是一個jQuery函數,所以你可以在頁面上的任何元素上使用它。 –

4

稍有不同的@詹姆斯 - 約翰遜的出色的答案〜搖〜被absolute定位的元素。此功能捕捉元素的當前left位置並相對於此點搖動它。我已經去了一個不太激烈的搖晃,氣體標記10.

jQuery.fn.shake = function() { 
    this.each(function (i) { 
     var currentLeft = parseInt($(this).css("left")); 
     for (var x = 1; x <= 8; x++) {    
      $(this).animate({ left: (currentLeft - 10) }, 10).animate({ left: currentLeft }, 50).animate({ left: (currentLeft + 10) }, 10).animate({ left: currentLeft }, 50); 
     } 
    }); 
    return this; 
}