Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Задержка mouseenter (https://javascript.ru/forum/jquery/42361-zaderzhka-mouseenter.html)

Darth LegiON 23.10.2013 14:22

Задержка mouseenter
 
Приветствую.
Нужно сделать эффект выползания подменю, но обязательно только после длительной задержки мыши на основном пункте меню. То есть если курсор был на элементе меньше 300 мс, скрипт срабатывать не должен.
Вот начальный вариант скрипта:
$(".menu_block").mouseenter(function () {
	$(".submenu", this).fadeIn(600);
});

HTML-код меню:
<div class="menu_block">
	<li class="menu_item">*Меню*</li>
	<ul class="submenu">
               *Пункты подменю*
	</ul>
	
</div>

Заранее спасибо.

рони 23.10.2013 14:36

Darth LegiON,
только после пребывания там мыши пару секунд
Цитата:

Сообщение от Darth LegiON
300 мс

растут скорости :write:

sysya 23.10.2013 14:43

копайте в сторону .delay()

рони 23.10.2013 14:46

Цитата:

Сообщение от sysya
delay()

чем оно может помочь???

sysya 23.10.2013 14:51

задерживает анимацию на заданное время

рони 23.10.2013 14:53

Цитата:

Сообщение от sysya
задерживает анимацию на заданное время

почувствуйте разницу
Цитата:

Сообщение от Darth LegiON
скрипт срабатывать не должен.


sysya 23.10.2013 14:56

ага, понял :) ещё раз прочитал вопрос... ну, пытался помочь

Darth LegiON 23.10.2013 15:35

Спасибо, смысл я понял, под свои нужды переработал, но почему-то не фурычит. Вот скрипт сразу вместе с закрытием:
var timer;

$(".menu_block").mouseenter(function(){
	timer = window.setTimeout(function () {
		$(".submenu", this).fadeIn(600);
	}, 700)
	
}).mouseleave(function(){
	window.clearTimeout(timer);
	$(".submenu", this).delay(300).fadeOut(600);
});

рони 23.10.2013 16:21

Darth LegiON,
5 строка
Цитата:

Сообщение от Darth LegiON
this

откуда таймеру знать что есть это??? кешируйте this

Darth LegiON 23.10.2013 16:25

Цитата:

Сообщение от рони (Сообщение 277792)
Darth LegiON,
5 строка откуда таймеру знать что есть это??? кешируйте this

*стукнул себя по лбу* :lol: Ларчик просто открывался, спасибо :)


Часовой пояс GMT +3, время: 11:43.