2011-11-07 10 views
6

Esiste comunque la possibilità di eseguire un movimento div box al caricamento della pagina? Come forse solo una o due volte?Fare un div shake al caricamento della pagina?

Aggiornamento: A questo URL non funziona ancora sul caricamento della pagina, cosa sto facendo male? http://tinyurl.com/79azbav

Penso di essere bloccato al carico on-page; che il fallimento può essere visto qui: Get onpage to work correctly

ho provato anche avviando l'animazione con il mio già implementato body onLoad:

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

Ma ancora non riuscendo come un campione.

+6

Fare clic su Aggiorna e colpire il monitor! :) – Louie

+0

Non capisco. –

+0

@Louie thats my fallback per old IE =) –

risposta

24

provare qualcosa di simile:

EDIT:
Modificato Shake()-shake() per la coerenza con le convenzioni 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; 
} 

EDIT:
Nel mio esempio la posizione left è impostato su 25, ma si può ridurre questo per un effetto più sottile o aumentarlo per un effetto più pronunciato.

Usando la funzione shake:

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

Ecco un jsFiddle che lo dimostra: http://jsfiddle.net/JppPG/3/

+0

Grazie per la risposta, ma dove posso definire a quale div this si applica? –

+0

@Truth: grazie per aver dimostrato l'implementazione. –

+0

@LouieLouie: è una funzione jQuery, quindi puoi usarla su qualsiasi elemento della pagina. –

4

leggera variante @ risposta eccellente di James-Johnson per ~ ~ agitazione elementi che vengono posizionati absolute. Questa funzione acquisisce la posizione corrente dell'elemento e la scuote rispetto a questo punto. Sono andato per un micromosso meno violento, marchio del gas 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; 
} 
Problemi correlati