В гугле порылся, там все предлагают кнопку и привязку к якорю. Нужно именно доскролить до блока с помощью колесика мышки или перетаскивания ползунка скроллинга. Допустим есть цикл перебирающий блоки, и на нужном блоке запоминающий его Код (Javascript): [].forEach.call( elList, function( item, i ){ if( i == num ) { let box = item.getBoundingClientRect(); off_height = box; } }); в off_height имеем такой объект Код (Javascript): DOMRect = { bottom: 1194, height: 18, left: 8, right: 1272, top: 1176, width: 1264, x: 8, y: 1176 } Далее например есть метод скрола, и вот что там прописать чтобы было событие когда нижний экран пользователя дойдет до этой отметки: Код (Javascript): window.addEventListener('scroll', function(e) { //let category = document.querySelector('.category__products'), //s = category.getBoundingClientRect().top + document.body.scrollTop; //я так понимаю нужно ориентироваться до off_height.top console.log(off_height.top); //console.log(s); });
написал так, вроде пашет) Код (Javascript): window.addEventListener('scroll', function(e) { var scrollHeight = Math.min( document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight ); let z = 20, h = scrollHeight + document.body.scrollTop, t = off_height.top + z; if(h >= t){ //событие } }); в цикле найденный элемент уходит в эту функцию Код (Javascript): function getOffsetSum(elem) { var top = 0, left = 0; while (elem) { top = top + parseInt(elem.offsetTop); left = left + parseInt(elem.offsetLeft); elem = elem.offsetParent; } return { top: top, left: left }; } делал по этим инструкциям https://learn.javascript.ru/coordinates-document https://learn.javascript.ru/metrics-window