Спасибо всем откликнувшимся разобрался сам.
Опишу для будущих поколений, если ошибся надеюсь меня поправят:
При скрытии функция setTimeout(function() задает паузу перед выполнением анимации в 500мс. и если в этот период снова происходит вызов по событию, то анимация отменяется строчкой:
if (hideDelayTimer) clearTimeout(hideDelayTimer);
|