Цитата:
|
Цитата:
или сразу отменять родное действие и скроллить блоками. |
сейчас поясню
window.onwheel = function(e) { var delta = e.deltaY; //получили значение "смещения" var isScrollDown = true; if (delta<0) { isScrollDown = false; }//направление прокрутки var posScroll = window.scrollY + delta; //определили новое положение //далее пусть например якорный интервал 500-600 if ((posScroll>500)&&(posScroll<600)) { posScroll = 600; } window.scrollTo(0, posScroll); } А далее происходит следующее: все работает ОК, пока не дойдет до 500. Потом переносимся на 600 как и хотелось, а вот потом... долетают новые значения deltaY и скроллинг продолжается))) все сползает Не пойму как решить |
j0hnik,
пытался скроллить блоками window.onwheel = function(e) { return false; } elems = document.getElementsByClassName('cnt'); elems[0].onwheel = function(e){ var delta = e.deltaY; var posScroll = window.scrollY + delta; if ((posScroll>500)&&(posScroll<600)){ elems[1].scrollIntoView(); } else {window.scrollTo(0, posScroll);} } elems[1].onwheel = function(e){ var delta = e.deltaY; var posScroll = window.scrollY + delta; if ((posScroll>500)&&(posScroll<600)){ elems[2].scrollIntoView(); } else {window.scrollTo(0, posScroll);} } Все тоже самое как и в первом случае перешла на 2 блок и далее догоняет новое deltaY и блок смещается! |
alexkirsanov850@gmail.com,
https://javascript.ru/forum/dom-wind...tml#post312682 |
Цитата:
мб у вас еще где то в коде какие то фичи для скролла? |
Часовой пояс GMT +3, время: 21:43. |