Дизайнер, с которым я работаю, дал мне немного функциональности, и я не знаю, как к этому подойти. Она в основном хочет следующее;
- Когда вы наводите указатель мыши на ссылку, панель должна выпасть (без проблем)
- Панель должна исчезнуть через 10 секунд (также без проблем)
- Если курсор находится внутри панели, панель никогда не должна исчезать. Как только ваш курсор покинет панель, 10-секундный таймер должен запуститься снова (эм ..)
Может ли кто-нибудь указать мне правильное направление в виде плагина или статьи, в которой объясняется, как добиться этой третьей функциональности? Я довольно опытный разработчик, но я борюсь с тем, как подойти к этому или даже с чего начать поиск в Google. Вот то, что я имею до сих пор, все работают, но для этого третьего пункта пули. У меня есть ощущение, что мне может понадобиться полностью изменить мой подход, чтобы заставить это работать;
function showMiniBasket() {
$("#basketMiniSummary").slideDown();
}
function hideMiniBasket() {
$("#basketMiniSummary").fadeOut();
}
var config = {
over: showMiniBasket,
timeout: 10000,
out: hideMiniBasket
};
$("#basketDropDown").hoverIntent(config);
ОТВЕТ ...
Основываясь на предложении ниже, окончательное решение было ...
function showMiniBasket() {
$("#basketMiniSummary").slideDown("fast");
}
function hideMiniBasket() {
if (!$('#basketMiniSummary').hasClass('being_hovered')) {
$("#basketMiniSummary").fadeOut();
}
}
var config = {
over: showMiniBasket,
timeout: 1000,
out: hideMiniBasket
};
$("#basketDropDown").hoverIntent(config);
$('#basketMiniSummary').hover(function() {
//hover in
$(this).addClass('being_hovered');
$("#basketMiniSummary").slideDown();
}, function() {
//hover out
$(this).removeClass('being_hovered');
$("#basketMiniSummary").delay(1000).fadeOut();
});