Показать сообщение отдельно
  #105 (permalink)  
Старый 25.12.2017, 16:31
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

Скажите пожалуйста, как отловить событие нижней точки элемента? В коде отметил место где делал попытки.
window.addEventListener("DOMContentLoaded", function() {
	/*document.addEventListener("scroll", eventScroll);*/
	let timer;
	document.addEventListener("scroll", function() {
		window.clearInterval(timer);
		timer = window.setTimeout(eventScroll, 100)
	});
		
	const pages = document.querySelectorAll(".page");
	let lastScrolled = 0;
		function showPage() {
		[].forEach.call(pages, function(el, i) {
			i == pageIndex ? el.classList.add("active") : el.classList.remove("active");
			// моя попытка
			let bottomPage = pages[i].getBoundingClientRect().bottom + window.pageYOffset;
			if (window.pageYOffset < bottomPage) {
				alert("hello");
				} else if (window.pageYOffset > bottomPage) {
				alert("bye");
			}
			// конец попытки
		});
	}
	let pageIndex = 0;
	
	showPage();
	function eventScroll() {
		let scrolled = window.pageYOffset || document.documentElement.scrollTop;
		if (scrolled < lastScrolled) {
			--pageIndex;
		} else {
			++pageIndex;
		}
		pageIndex < 0 && (pageIndex = 0);
		pageIndex > pages.length - 1 && (pageIndex = pages.length - 1);
		showPage();
		lastScrolled = scrolled;
	}
});


<section class="page"></section>
	<section class="page"></section>
	<section class="page"></section>
	<section class="page"></section>
Ответить с цитированием