Почему событие после скролла работает некорректно?

На лендинге реализую фичу, когда после нажатия на кнопку "Отправить заявку" страница плавно скроллится вверх и кратковременно выделяется форма.
// Плавный скролл
	$('a[href^="#"], a[href^="."]').on('click', function(){ // если в href начинается с # или ., то ловим клик
		var scroll_el = $(this).attr('href'); // возьмем содержимое атрибута href
		if ($(scroll_el).length != 0) { // проверим существование элемента чтобы избежать ошибки
			$('html, body').animate({ scrollTop: $(scroll_el).offset().top }, 500, function(){
				if ( $(window).scrollTop() == 0 ){
					$("#cover").fadeIn(700).delay(500).fadeOut(700);
				}
			});// анимируем скроолинг к элементу scroll_el
		}
		return false; // выключаем стандартное действие
	});

Трабл заключается в том, что иногда эффект затемнения
if ( $(window).scrollTop() == 0 ){
	$("#cover").fadeIn(700).delay(500).fadeOut(700);
}

срабатывает по 2-3 раза. Первый раз обычно срабатывает всегда корректно, но если вернуть страницу кнопкой "Отправить заявку" в топ больше одного раза, то эффект начинает тупить и повторяется 2-3 раза.
  • Вопрос задан
  • 208 просмотров
Пригласить эксперта
Ответы на вопрос 1
BuriK666
@BuriK666
Компьютерный псих
$('html, body')
Scroll только на body. html и так scrollTop имеет 0
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы