私はカレンダーを持ち、ユーザーがセルを移動すると、その日付の詳細が表示された大きな情報ボックスが表示されます。ユーザーが離れたときに情報ボックスを消してしまいましたが、何か問題があります。ホバー情報ボックスの実装
私は基本的に、マウスカーソルが情報ボックスに隠されているカレンダーセルから移動すると消えるようにします。しかし、私はこれに問題がありますmouseenter
とmouseleave
はトップの要素としてインフォボックスを持つことによって台無しになるので。
だから私は透明で、その下にあるカレンダーセルと同じ形と位置を持ち、情報ボックスの上にあるように、Zインデックスが1000である「プレースホルダ」divを使ってこの問題を回避しようとしました。代わりにmouseenter
とmouseleave
イベントをこれらのdivに適用します。
これには2つの問題があります。 1つは、私は今、意味的に私のHTMLを混乱させました。 divには目的がありませんが、制限のように見えるものを回避することです。第2に、jQueryのUI選択が乱れてしまいます(これをカレンダーセルに適用しました - クリックはもはやセルを選択しません)。
情報ボックスを表示するためのきれいな方法はありますか?情報ボックスとのユーザーのやり取りはありません。情報を表示するだけです。
EDIT:
<li>
<div class="day-content">
</div>
<div class="day-content-placeholder">
</div>
</li>
とCSS
li
{ position: absolute; width: 15%; height: 20%; top: ... left: ... }
.day-content
{ position: absolute; width: 100%; height: 100%; }
.day-content-placeholder
{ position: absolute; width: 100%; height: 100%; z-index: 1000; }
.popup
{ position: absolute; width: 300%; height: 300%; left: -150%; top: -150%; z-index: 500; }
とJavascript
var popup;
$('.week-content-placeholder')
.mouseenter(function()
{
popup = $('<div class="popup">'+a_lot_of_text+'</div>').insertAfter(this);
})
.mouseleave(function()
{
popup.remove();
});
正確なコードではありませんが、あなたのアイデアを得る:ここではいくつかのコードがあります。これは問題ありませんが、私が言ったように、.week-content-placeholder
は.week-content
を超えているため、jQuery UIの選択機能は.week-content
では正しく機能しません。
http://www.webdesignbooth.com/15-jquery-plugins-to-create-an-user-friendly-tooltip/
この質問には、カレンダー*のHTMLが何であるかを知ることは役に立ちます。 –
これはカレンダー固有の質問ではありません。それは、mouseenterイベントを持つdivだけで、隣に別のdivが追加されます。このdivは幅と高さが大きくなりますが、その下のdivを隠し、mouseleaveイベントをブロックします。 – Nick
ニック、なぜあなたは完全にカレンダーのセルを妨げていないように画面上にあなたの情報ボックスを配置するCSSの "位置"を使用していないのですか? – Neil