マウスを重ねると、150msの間隔で反時計回りに180度回転してから、マウスを離すと、要素を反時計回りに元の0度に150ms以上回転させる必要があります。ホバー上で150度以上180度に要素を回転させるにはどうすればよいですか?
私はCSS3、jQuery、およびJavaScriptを使用しています。
私はChromeを使用していますが、FirefoxとSafariでも動作させる必要があります。あまりにもIEについて心配しないでください。
マウスを重ねると、150msの間隔で反時計回りに180度回転してから、マウスを離すと、要素を反時計回りに元の0度に150ms以上回転させる必要があります。ホバー上で150度以上180度に要素を回転させるにはどうすればよいですか?
私はCSS3、jQuery、およびJavaScriptを使用しています。
私はChromeを使用していますが、FirefoxとSafariでも動作させる必要があります。あまりにもIEについて心配しないでください。
クラスを追加/削除するには、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);
ブラウザのプレフィックス(-o、-moz、-ms、および-webkit)が必要なブラウザがあることを忘れないでください。 – qsheets
よく見えますが、マウスの入力とマウスの両方で同じ方向(反時計回り)に回転する必要があります。 – chharvey
@ TestSubject528491あなたの質問を最初に読んでおけば助けになると思います。これを処理するコードが更新されました。今やいくつかのjavascriptが必要です。 – ThinkingStiff
なぜ150msの?ブラウザの時間を使って作業するときには正確なマークを打つことはありませんが、 'setTimeout(functionCall()、150) 'を使用することが必要なことに気付くだけです。 – vol7ron
どのタイプの要素ですか?画像のみ? –
CSS3は* experimental * [transform property](https://developer.mozilla.org/ja/CSS/transform)と[transition property](https://developer.mozilla)を使用する場合にのみ発生します。 org/en/CSS/transition)、これは時にはFirefoxで少し遅くなることがあります(ちょっと注意してください)。 – animuson