2011-11-07 11 views
6

ページの読み込み時にdivボックスを揺らすようにしてもらえますか?たぶん1回か2回か?ページ読み込み時に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();" > 

しかし、まだチャンピオンのように失敗します。

EDIT
はjQueryの規則との整合性を保つためにshake()Shake()を変更

+6

あなたのモニターをリフレッシュして叩く! :) – Louie

+0

私はそれを得ることはありません。 –

+0

@Louie thats私の古いフォールバックIE =) –

答えて

24

はこのような何かを試してみてください。

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; 
} 

EDIT:私の例では
left位置が25に設定されていますが、より微妙な効果のためにこれを減らすか、より顕著な効果のためにそれを増やすことができます。

shake機能を使用する:

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

はここでそれを示していjsFiddleです: http://jsfiddle.net/JppPG/3/

+0

返信ありがとうございますが、どこにこれが適用されるdivを定義できますか? –

+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; 
} 
関連する問題