div(#sliderBox)上にマウスを置いたときに表示と非表示を切り替えるdiv(#thumbnails)が必要です。そのために、hoverIntentプラグインを使用して、魅力的に働きました。clearTimeout()の使用に関するヘルプが必要です。およびsetTimeout);解決策が見つからない
5秒間アイドル状態にするとdiv(#thumbnails)がfadeOutになります。私はそれをsetTimeout()を使って動作させることができました。
私の問題は、次のとおりです。私は#sliderBoxの上にアイドル滞在する場合、私は再びマウスを動かすと#thumbnailsのdiv要素がフェードインしませんDIV。マウスカーソルを#sliderBox divから外し、#thumbnails div fadeInを再び作成するには、もう一度マウスカーソルを移動しなければなりません。
これを修正する方法はありますか?
これは私のコードです:
$(document).ready(function() {
$("#thumbnails").hide();
$("#sliderBox").hoverIntent(showThumbs, hideThumbs);
var timer;
$(document).mousemove(function() {
if (timer) {
clearTimeout(timer);
timer = 0;
}
timer = setTimeout(function() {
$('#thumbnails').fadeOut(1000)
}, 5000)
});
});
function showThumbs(){ $("#thumbnails").fadeIn(1000);}
function hideThumbs(){ $("#thumbnails").fadeOut(800);}
あなたのアイデアは私には分かりやすいものです。しかし、私はそれが動作するように問題を抱えています。私はJqueryにとってちょっと新鮮です。あなたは私にいくつかのアドバイスをくれますか? –
プラグインのコードを見て、それがどのように機能しているかを理解してください。それは短く、よく書かれ、コメントされている。次に、達成しようとしていることを計画する必要があります。具体的には、変更されたロジックの周りにあるので、変数を使って現在の状態を把握する必要があります(ボックスがアクティブ、フェードアウト、フェードイン、フェードアウトなど)。この状態の変化をどこで追跡し、イベントにどのように異なる対応をとるかというアイデアを設計してみてください。それを広く考えてみて、プログラミングの詳細に惑わされないようにしてください。彼らが出てくると、ここで具体的な質問をしてください。 –
私は状態を使用して終了しました。私は単純な解決策を作り、別の変数を追加して新しい状態を追加しました。その状態は、サムネイルがタイマにDUEされるかどうかを定義します。したがって、基本的にマウスを動かしてそのような状態にすると、onMouseEnter関数が呼び出され、サムネイルが再びフェードインします。プラグインは今見て、うまく動作方法 これは次のとおりです。http://jsfiddle.net/Eblan85/tTjZv/は おかげで再び助け:) –