異なるCSSのアニメーションタイプでjQueryマウスイベントを解析すると、translate3dがホバーやその他のイベントを正しく発生させないことに気づいています。translate3d()jQueryのホバー/クリックイベントが正しく発生しないようにする
基本的な例では、ブロックのリストを右から左にアニメーション化しています。
ロールオーバー時に、ホールドされたLIの背景を緑色に設定しています。
注:テストはWebKitのために構築されている
HTML
<div class="container">
<ul>
<li>content</li>
<li>content</li>
...
</ul>
</div>
CSS
.container{
position: absolute;
left: 600px;
top: 0;
}
.container ul{
list-style: none;
width: 9999px;
}
.container ul li{
width: 200px;
height: 400px;
float: left;
background: red;
margin: 4px;
}
.animate-3d{
-webkit-transition: -webkit-transform 10s linear;
-webkit-transform: translate3d(-6000px, 0px, 0px)
}
.animate-transition{
transition: left 10s linear;
left: -6000px;
}
jQueryの
$('.event').bind('click', function(){
$('.container').addClass('animate-3d');
});
$('.event-transition').bind('click', function(){
$('.container').addClass('animate-transition');
});
$('li').bind('mouseenter mouseleave', function(e){
if(e.type == 'mouseenter')
$(this).css('background', 'green');
else
$(this).css('background', 'red');
});
translate3dは非常にエラーの多いjQueryのホバーを表示していますが、翻訳は大丈夫です。
これはなぜですか?
http://jsfiddle.net/jkusachi/j2PSw/2/
私はアニメーションが完了した後にホバーはtranslate3dのために働くことに注意します。この
チェック。 アニメーションが終了し、アニメーションを「リセット」すると、赤い部分を赤い部分に合わせてマウスを動かすと、mouseenter/mouseleaveがトリガーされているようです マウスがボックスの上にないときかなり面白いです... – jkusachi
この問題の解決策を見つけたことがありますか? – luwes