Задать вопрос
@Richswitch
junior

Как сбросить действие функции?

Привет!
Функция smothScroll() в коде ниже, работает постоянно, вероятно из-за того, что соответствует условию, которое ее собственно и запускает.
document.addEventListener('scroll', function(event) {
		var zoneCoords = zone.getBoundingClientRect(),
				yTop = zoneCoords.top,
				yBot = zoneCoords.bottom,
				zonePos = zone.offsetParent.offsetTop;
				heightZone = zone.clientHeight,         // высота блока 
				centerZone = zone.clientHeight/1.2;
		var diffTop = window.innerHeight - yTop,
				diffBot = window.innerHeight - yBot;

				if (diffTop >= zone.clientHeight/1.2 && diffTop <= zone.clientHeight || diffBot >= 0 && diffBot <= 100) {
 					smoothScroll();
				} else if (window.innerHeight === heightZone) {
                                        // если высота окна равна высоте блока, то отменить функцию 
				}

   			function smoothScroll() {
   				destination = $(zone).offset().top;
   				$('body, html').animate( { scrollTop: destination }, 500 );
   				return true;
   			}

Мне необходимо дописать что-то в условие (см. код).
Если высота окна равна высоте блока, то отменить функцию


На данный момент функция smoothScroll() из-за своей работы не дает скролить страницу.
Пример того что я хочу реализовать можно посмотреть здесь
смотрите вот этот блок
5a009c21e092a001829574.png
  • Вопрос задан
  • 917 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
https://api.jquery.com/stop/
// Если высота окна равна высоте блока, то отменить функцию
if() {
$( ".block" ).stop();
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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