2012-02-25 9 views
6

Al passaggio del mouse, ho bisogno di ruotare un elemento in senso antiorario di 180 ° su un intervallo di 150 ms, e quindi al passaggio del mouse ho bisogno di ruotare l'elemento in senso antiorario fino allo 0 original originale oltre 150 ms.Come ruoto un elemento a 180 gradi su 150 ms al passaggio del mouse?

Sono aperto all'utilizzo di CSS3, jQuery e JavaScript.

Io uso Chrome, ma ho anche bisogno di farlo funzionare per Firefox e Safari. Non troppo preoccupato per IE.

+0

Perché 150ms? Sappi solo che quando lavori con il tempo del browser, non colpirai mai un segno esatto, ma usando 'setTimeout (functionCall(), 150)' sarebbe quello che ti serve. – vol7ron

+0

Quale tipo di elementi? Solo immagini? –

+0

Bene CSS3 avverrà solo se si desidera utilizzare * experimental * [transform transform] (https://developer.mozilla.org/en/CSS/transform) e [transition property] (https: //developer.mozilla. org/it/CSS/transizione), che a volte può essere un po 'lento in Firefox (solo per notare). – animuson

risposta

12

Utilizzare CSS3 transform, transition e Javascript per aggiungere/rimuovere classi.

Demo: http://jsfiddle.net/ThinkingStiff/AEeWm/

HTML:

<div id="rotate">hover me</div> 

CSS:

#rotate { 
    border: 1px solid black; 
    height: 100px; 
    width: 100px; 
} 

.over { 
    transform: rotate(-180deg);    
    transition: transform 150ms ease; 
} 

.out { 
    transform: rotate(-360deg);    
    transition: transform 150ms ease; 
} 
​ 

Script:

var rotate = document.getElementById('rotate'); 

rotate.addEventListener('mouseover', function() { 

    this.className = 'over'; 

}, false); 

rotate.addEventListener('mouseout', function() { 

    var rotate = this; 

    rotate.className = 'out'; 
    window.setTimeout(function() { rotate.className = '' }, 150); 

}, false); 

​ 
+2

Non dimenticare che alcuni browser potrebbero avere ancora bisogno dei prefissi del browser (-o, -moz, -ms e -webkit) – qsheets

+0

Sembra buono ma ho bisogno che ruoti nella stessa direzione (in senso antiorario) sia con il mouse che con il mouse . – chharvey

+0

@ TestSubject528491 Immagino che sarebbe d'aiuto se prima avessi letto la tua domanda. Codice aggiornato per gestire questo. Richiede qualche javascript ora. – ThinkingStiff

Problemi correlati