Эмм,
рони, неловко так. Только заметил, что не совсем всё гладко получилось.
При наведении мыши баннеры останавливаются - с этим Ок.
Но вот при mouseleave сразу происходит смена баннера - моментально. А должен запуститься интервал. Потому как на сайте эта резкая смена баннеров при отводе мышки смотрится очень убого и совсем не так как надо.
Я попробовал сделать вот так: вместо
banner.addEventListener("mouseleave", showItem.bind(null, banner));
написал
banner.addEventListener("mouseleave", function(){setTimeout(showItem.bind(null, banner), pause) });
Это вроде бы помогло, и после mouseleave баннер меняется не сразу, а с нужной задержкой. Т.е. то что я и хотел.
Но тут вылезла другая проблема. Если несколько раз быстро подёргать мышку на блок с баннерами и обратно, то происходит лютая дичь. Спустя установленный интервал баннеры начинают очень быстро сменяться кратно количеству зафиксированных mouseenter'ов.
Как это победить? Баннеры у меня не картинки, а блоки с текстом и ссылками. Допускаю, что подобные сценарии с многократным попаданием мыши на баннер будут весьма частым явлением.