2012-02-25 9 views
6

マウスを重ねると、150msの間隔で反時計回りに180度回転してから、マウスを離すと、要素を反時計回りに元の0度に150ms以上回転させる必要があります。ホバー上で150度以上180度に要素を回転させるにはどうすればよいですか?

私はCSS3、jQuery、およびJavaScriptを使用しています。

私はChromeを使用していますが、FirefoxとSafariでも動作させる必要があります。あまりにもIEについて心配しないでください。

+0

なぜ150msの?ブラウザの時間を使って作業するときには正確なマークを打つことはありませんが、 'setTimeout(functionCall()、150) 'を使用することが必要なことに気付くだけです。 – vol7ron

+0

どのタイプの要素ですか?画像のみ? –

+0

CSS3は* experimental * [transform property](https://developer.mozilla.org/ja/CSS/transform)と[transition property](https://developer.mozilla)を使用する場合にのみ発生します。 org/en/CSS/transition)、これは時にはFirefoxで少し遅くなることがあります(ちょっと注意してください)。 – animuson

答えて

12

クラスを追加/削除するには、CSS3 transform,transitionおよびJavascriptを使用してください。

デモ: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; 
} 
​ 

スクリプト:

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

ブラウザのプレフィックス(-o、-moz、-ms、および-webkit)が必要なブラウザがあることを忘れないでください。 – qsheets

+0

よく見えますが、マウスの入力とマウスの両方で同じ方向(反時計回り)に回転する必要があります。 – chharvey

+0

@ TestSubject528491あなたの質問を最初に読んでおけば助けになると思います。これを処理するコードが更新されました。今やいくつかのjavascriptが必要です。 – ThinkingStiff

関連する問題