2012-02-25 27 views
6

Al girar el mouse, necesito girar un elemento en sentido antihorario 180˚ en un intervalo de 150 ms, y luego con el mouse hacia afuera, necesito girar el elemento en sentido antihorario para volver al original de 0˚ en 150 ms.¿Cómo giro un elemento a 180 grados durante 150 ms con el vuelo estacionario?

Estoy abierto a usar CSS3, jQuery y JavaScript.

Uso Chrome, pero también necesito que funcione para Firefox y Safari. No muy preocupado por IE.

+0

Por qué 150ms? Solo tenga en cuenta que cuando trabaje con el tiempo del navegador, nunca alcanzará una marca exacta, pero usar 'setTimeout (functionCall(), 150)' sería lo que necesita. – vol7ron

+0

¿Qué tipo de elementos? ¿Solo imágenes? –

+0

Bueno CSS3 solo ocurrirá si quiere usar * experimental * [transformar propiedad] (https://developer.mozilla.org/en/CSS/transform) y [propiedad de transición] (https: //developer.mozilla. org/en/CSS/transition), que a veces puede ser un poco lento en Firefox (solo para tener en cuenta). – animuson

Respuesta

12

Utilice CSS3 transform, transition y Javascript para añadir/eliminar clases.

Demostración: 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; 
} 
​ 

de guión:

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

No olvide que algunos navegadores aún pueden necesitar los prefijos del navegador (-o, -moz, -ms, y -webkit) – qsheets

+0

Se ve bien pero necesito que gire en la misma dirección (en sentido contrario a las agujas del reloj) tanto en el mouse como en el mouse . – chharvey

+0

@ TestSubject528491 Supongo que sería útil si primero leo su pregunta. Código actualizado para manejar esto. Requiere algo de javascript ahora. – ThinkingStiff

Cuestiones relacionadas