Есть ли способ вызвать событие mouseover только после того, как мышь зависела в течение 1 секунды на элементе?jQuery mouseover с синхронизацией
$("img").mouseover(function() {
$(this).animate({opacity:1}, 200);
});
Есть ли способ вызвать событие mouseover только после того, как мышь зависела в течение 1 секунды на элементе?jQuery mouseover с синхронизацией
$("img").mouseover(function() {
$(this).animate({opacity:1}, 200);
});
Вы можете использовать плагин hoverIntent() JQuery найти здесь: http://cherne.net/brian/resources/jquery.hoverIntent.html
Кроме того, убедитесь, что вы будьте осторожны при использовании этих видов вещей, как они не работают на мобильных браузерах или что-нибудь с помощью прикосновения экран.
Да, если приложение сенсорного экрана не имеет встроенного указателя мыши или эквивалента, который может быть обнаружен как событие зависания. –
Вы должны использовать функцию setTimeOut.
setTimeOut(function(){$("img").mouseover(function() {
$(this).animate({opacity:1}, 200);
});
},1000);
Требуется время в миллисекундах.
вы можете создать функцию таймера (см. [1]), которая обрабатывает ваше событие спустя 1 секунду. Вы можете сохранить эту функцию в массиве или непосредственно в «окне», чтобы она могла быть отменена, если «выключение мыши» происходит до срабатывания функции таймера.
$("img").on("mouseover mouseout", function() {
var tid = 0;
return function(e) {
var elem = $(this);
clearTimeout(tid);
if (e.type == "mouseover") {
tid = setTimeout(function() {
elem.stop(true).animate({
opacity: 1
}, 200);
}, 1000);
}
else {
console.log(elem);
elem.stop(true).animate({
opacity: 0.3
}, 200);
}
};
}());
20 строк кода для ответа jQuery ??? Pfft .. * Напишите меньше * моя задница. – rlemon
Следует отметить: hoverIntent составляет ~ 1,5 кбайт кода (минимизировано), это решение похоже на 0.01kb, как есть. – rlemon
@rlemon это также имеет модуль отладки встроенного 'console.log (elem);' – Esailija
Вы можете посмотреть на http://cherne.net/brian/resources/jquery.hoverIntent.html – j08691
Проверьте следующую ссылку: [Tricky delay on mouseover] (http://stackoverflow.com/questions/1510594/tricky-delay-on-mouseover) –