У меня есть календарь, и когда пользователь наводит курсор на ячейку, появляется информационное окно большого размера с деталями на эту дату.У меня возникли некоторые проблемы, хотя при удалении пользователя информационное поле исчезло.
Я в основном хочу, чтобы при перемещении курсора мыши из ячейки календаря, скрытой информационным блоком, он исчезал.Но у меня возникли проблемы с этим, потому что mouseenter
и mouseleave
испорчены тем, что информационный блок является верхним элементом.
Так что я попытался обойти это, используя "заполнители" div, которыепрозрачные, имеют ту же форму и расположение, что и ячейка календаря под ним, и имеют z-индекс 1000, поэтому они находятся над информационным полем.Затем я применяю к этим div'ам события mouseenter
и mouseleave
.
Однако с этим есть две проблемы.Во-первых, я теперь испортил свой HTML семантически.У div'ов нет никакой цели, кроме как обойти то, что кажется ограничением.И во-вторых, они испортили мой выбор пользовательского интерфейса jQuery (я применил его к ячейкам календаря - щелчок больше не выделяет ячейку).
Есть ли чистый способ обработки отображения информационного окна?Пользователь не будет взаимодействовать с информационным полем - он просто отображает информацию.
РЕДАКТИРОВАТЬ : Вот код:
<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
.