2012-02-25 19 views
6

Po najechaniu myszką, muszę obrócić element przeciwnie do ruchu wskazówek zegara o 180˚ w odstępach równych 150ms, a następnie po wyjęciu myszy muszę obrócić element przeciwnie do ruchu wskazówek zegara z powrotem do pierwotnego 0˚ na 150ms.Jak obrócić element do 180 stopni na 150 ms po najechaniu kursorem?

Jestem otwarty na używanie CSS3, jQuery i JavaScript.

Używam przeglądarki Chrome, ale muszę ją również skonfigurować w przeglądarkach Firefox i Safari. Nie przejmuj się IE.

+0

Dlaczego 150ms? Po prostu wiedz, że pracując z czasem przeglądarki, nigdy nie trafisz dokładnego znaku, ale użycie 'setTimeout (functionCall(), 150) będzie tym, czego potrzebujesz. – vol7ron

+0

Jaki typ elementów? Tylko zdjęcia? –

+0

Cóż CSS3 może się zdarzyć tylko wtedy, gdy chcesz użyć * eksperymentalnej * [transformacji nieruchomości] (https://developer.mozilla.org/en/CSS/transform) i [przejścia własności] (https: //developer.mozilla. org/en/CSS/transition), które czasami może być nieco powolne w Firefoksie (byle tylko zanotować). – animuson

Odpowiedz

12

Użyj CSS3 transform, transition i Javascript, aby dodać/usunąć klasy.

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

Nie zapominaj, że niektóre przeglądarki mogą wciąż wymagać prefiksów przeglądarki (-o, -moz, -ms i -webkit). – qsheets

+0

Wygląda dobrze, ale potrzebuję go do obracania w tym samym kierunku (w lewo) zarówno na myszy, jak i poza nią . – chharvey

+0

@ TestSubject528491 Domyślam się, że to pomoże, jeśli najpierw przeczytam twoje pytanie. Kod zaktualizowany do obsługi tego. Wymaga trochę javascript teraz. – ThinkingStiff

Powiązane problemy