私にはいくつかのメディアがあります。その上、ユーザーのマウスがアイドル状態のときに非表示にするコントロールのグループがあります。その後、ユーザーがマウスを動かすと再び表示されます。divが隠されているときにdivが親のmousemoveを起動させないようにする方法
私の問題は、コントロールがなくなると、親にmousemoveイベントがトリガーされるということです。これにより、コントロールが再び表示されます。ここで
はJSコードです:
(function($) {
var timer = null;
$('.outer').mousemove(function() {
$('.inner').fadeIn('slow');
if (timer) {
window.clearInterval(timer);
}
timer = window.setTimeout(function() {
$('.inner').fadeOut('slow');
}, 3000);
});
})(jQuery);
そして、ここではフィドルです:https://jsfiddle.net/8oduhs96/
は今バイオリンは私のプロジェクトのような多くを見るために構成されています。マークアップを変更するための柔軟性があまりないので、JSやCSSソリューションが好まれます。
CSSの下位ブロックのコメントを解除して、マウスが青い領域にあるときにのみ問題が発生することを確認できます。
(jQueryの
fadeIn/fadeOut
からdisplay:none/block;
効果として)DOMの変更をトリガしません。メニューが隠されているかどうかに基づいて親のクラス。親がそのクラスを持っている場合は、ホバーをオンにします。 – eeetee私はあなたがマウスを移動しないときに、メニューが消えて、あなたが必要としていない問題を取得しないでください?また、https://jsfiddle.net/8oduhs96/7/ – romuleald
@romulealdのようにaddClass/removeClassとCSSの移行を考えてみましょう。問題は、マウスを動かさずにすぐにメニューが再表示されることです。メニューが完全に削除されていないため、フィーリングに問題はありません。ただアルファ化されています。これは、IMOで、隠れた後にタイムアウトを使用するよりも受け入れやすいものです。あなたが答えを入力すると、私はそれを受け入れるでしょう。 – Sean