одного нажатия на кнопку . даже если скролл уже дошел к концу?
https://codepen.io/gihhh/pen/BadQjga
потому что в момент вы проверяете checkIfScrollToEnd, скролл ещё не завершён... console.log(container.scrollWidth - container.scrollLeft == container.offsetWidth) - вот видно если посмотреть на эти данные вам нужно дождаться когда закончится container.scrollBy и вызвать колбек
вам нужно делать проверку с учётом того, что именно этот клик дойдёт до конца, то есть думать на один шаг раньше
пробую коллбэк. как об стенку пока)
вам не нужен колбек, просто проверяйте конец скрола до момента скрола а не после, с учётом величины прокрутки, как я и писал выше
нашел еще такой варик. container.addEventListener("scroll", function () { засунул в функцию проверки скролла. листенер который после скролла проверяет . прокручено ли до конца
ну это усложнение кода, у вас в основе простая математика и она часто где встречается
как проще можно проверять . после скролла это?
А зачем вам после скролла? Сморите у вас текущий скрол 800, а весь 1000. Шаг у вас не меняется и составляет 300. Вы уже понимаете что если нажать на кнопку значение будет 1100, а это больше 1000... значит скрол дошёл до конца и можно скрывать кнопку. Всё определение можете повесить не на одну функцию, а внутри ивентов клика.
если в консоле выводить сколько скролиит. первый скролл оно не засчитывает. я все-ровно не понимаю.
if (currentScroll + scrollValue >= allScrollPath) - дошло до конца if (currentScroll - scrollValue <= 0) - дошло до начала при каждом клике на кнопку делается сразу эта проверка, а потом скрол
можете подготовить код, я вам скину уже готовый вариант
https://codepen.io/gihhh/pen/wvqozgO
Код не оптимизировал, чтобы было понятно что происходит
вставьте этот код в кодепен и проверьте
Обсуждают сегодня