Показать сообщение отдельно
  #7 (permalink)  
Старый 02.03.2020, 16:58
Интересующийся
Отправить личное сообщение для imhateb Посмотреть профиль Найти все сообщения от imhateb
 
Регистрация: 16.09.2013
Сообщений: 28

Эмм, рони, неловко так. Только заметил, что не совсем всё гладко получилось.

При наведении мыши баннеры останавливаются - с этим Ок.

Но вот при mouseleave сразу происходит смена баннера - моментально. А должен запуститься интервал. Потому как на сайте эта резкая смена баннеров при отводе мышки смотрится очень убого и совсем не так как надо.

Я попробовал сделать вот так: вместо
banner.addEventListener("mouseleave", showItem.bind(null, banner));

написал
banner.addEventListener("mouseleave", function(){setTimeout(showItem.bind(null, banner), pause) });

Это вроде бы помогло, и после mouseleave баннер меняется не сразу, а с нужной задержкой. Т.е. то что я и хотел.

Но тут вылезла другая проблема. Если несколько раз быстро подёргать мышку на блок с баннерами и обратно, то происходит лютая дичь. Спустя установленный интервал баннеры начинают очень быстро сменяться кратно количеству зафиксированных mouseenter'ов.

Как это победить? Баннеры у меня не картинки, а блоки с текстом и ссылками. Допускаю, что подобные сценарии с многократным попаданием мыши на баннер будут весьма частым явлением.
Ответить с цитированием