2行の名前を含むヘッダーを持つWebサイトを設計しています。ユーザーが名前の1つにカーソルを合わせると、名前の下に特定のdivが表示される必要があります。このdivには他の画像とリンクが含まれているため、ユーザーはマウスを名前からdivに移動できる必要があります。
簡単にするために、名前の一番上の行を「top」と呼び、関連するdivを「top-reveal」と呼び、名前の一番下の行を「bottom」と「bottom-reveal」と呼びます。(リンクされたjsfiddleを参照してください。)
「Top-reveal」と「bottom-reveal」は同じ場所に表示する必要があり、上記の名前と重複することはできません。
最初にストレートCSSdiv:first-childを使用しようとしましたが、ユーザーの「インテント」を制御できませんでした。
次に、hoverIntentプラグインを使用してjQueryアプローチに切り替えました。
var timeHover = 700;
$("[id^='top']").hoverIntent({
over: topRevealer,
timeout: timeHover,
out: topHider
});
$("[id^='bottom']").hoverIntent({
over: bottomRevealer,
timeout: timeHover,
out: bottomHider
});
function topRevealer() {
setTimeout(function () {
$('#bottom-reveal').hide(), $('#top-reveal').fadeIn();
}, timeHover);
}
function bottomRevealer() {
setTimeout(function () {
$('#top-reveal').hide(), $('#bottom-reveal').fadeIn();
}, timeHover);
}
function topHider() {
$('#top-reveal').hide()
}
function bottomHider() {
$('#bottom-reveal').hide()
}
.hover()でタイムアウトを実行する方法がわからなかったため、hoverIntentを使用しています。これは、reveal divがフェードアウトしてから元に戻ることを除いて機能します。これは、マウスが「Top」から「Top-Reveal」に移動すると「TopHider」を呼び出し、マウスが「TopRevealer」に入ると「TopRevealer」を呼び出すためです。 "Top-Reveal" divですが、ポップインおよびポップアウトしたくありません。また、フェードインとフェードアウトのキューが作成される可能性があり、ある種のエラーキャッチャーを作成する方法がわかりません。
私がいる場所をいじる:http://jsfiddle.net/UFZ6U/
ご覧のとおり、ほぼ完成していますが、最後のプッシュのためのガイダンス、またはJavaScriptコーディングを改善するためのヒントが必要です。スタンドアロンスクリプトをダウンロードする以外にJavaScriptを使い始めたのはつい最近のことで、今では何度も頭を悩ませています。私は最も簡単な答えを探しています。jQueryや純粋なCSSである必要はなく、軽量で実用的なソリューションです。私もhoverIntentと結婚していませんが、それは私をここまで到達させるのに役立ちました。
これが理にかなっていることを願っています。
すべての潜在的な回答者に感謝します。