powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как определить что страница прокручена до конца?
25 сообщений из 70, страница 2 из 3
Как определить что страница прокручена до конца?
    #39993172
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa,

за такое надо голову сворачивать
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993174
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa,

но если понимаешь что делаешь
https://jsfiddle.net/xyzejp8g/1/
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993178
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя
voraa,

но если понимаешь что делаешь
https://jsfiddle.net/xyzejp8g/1/

Ты не понимаешь.
Скрипт надо писать так, что бы он был универсальным, не зависел от того, что там творится раньше на странице.
Куда бы ты не вставил свой сторожевой элемент (например в body) , всегда есть вероятность, что кто то написал или напишет потом
что то вроде document.body.appendChild (тра-та -та)
Или какой-нибудь абсолютно позиционируемый элемент неожиданно вылезет ниже, как здесь
https://jsfiddle.net/voraa/cg175zj4/18/
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993222
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa
Ты не понимаешь.
а ты не понимаешь, что если такое случается - то явно что-тоне то в консерватории.
если следовать твоему - этот IntersectionObserver вообще надо исключить из стандарта,

voraa
всегда есть вероятность, что кто то написал или напишет потом
если ориентироваться на дураков, которые потом что-то напишут - это значит деградировать до уровня этих дураков.
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993251
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя
voraa
Ты не понимаешь.
а ты не понимаешь, что если такое случается - то явно что-тоне то в консерватории.
если следовать твоему - этот IntersectionObserver вообще надо исключить из стандарта,

voraa
всегда есть вероятность, что кто то написал или напишет потом
если ориентироваться на дураков, которые потом что-то напишут - это значит деградировать до уровня этих дураков.


IntersectionObserver - Полезная штука. Но его надо использовать по назначению.

В консервваториях очень часто не так. Ты, наверно, молодой еще. А мне много раз приходилось что то менять в сайтах, написанных другими. Материл создателей по страшному. Уверен, что и меня материли временами те, кто потом дописывал, менял, сопровождал то, что породил я. Сам иногда лет через 5 правил свой код и материл себя же.
Не бывает такого, что написал страницу, а потом сам всю жизнь ее сопровождаешь.
Это не деградация до дураков - это жизнь. Вот вызывает тебя начальник и говорит: Вот есть старая страница - там в конце надо добавить то-то и то-то. Садишься и тупо добавляешь. Почему надо учитывать, что кто то какой то элемент там в конце поставил только для того, что бы ловить конец скроллинга? Элементы в HTML для того, что бы что то отображать, а не для каких то иных специальных целей.
Есть четкое разделение. HTML - определяет структуру документа, CSS - его внешний вид, Javascript - взаимодействие с пользователем, динамику. Его и надо придерживаться и стараться не смешивать.

Вот создали сайт - все работает. Страницы берутся с сервера, тексты из БД. Но есть там модальные окошки. В какой то момент хозяева сайта решили увеличить размер сообщений. Размер модальных окон тоже увеличился. Но это не повод, что из-за этого перестанет работать способ ловли конца скроллинга.
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993260
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очередной разговор слепого с глухим.
И все потому, что в сотый раз детали задачи не раскрыты.
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993268
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA
Очередной разговор слепого с глухим.
И все потому, что в сотый раз детали задачи не раскрыты.


Детали раскрыты полностью (См первый пост)
Требуется определить именно конец прокрутки станицы, а не то, что дойдем до какого то искусственно созданного элемента. Потому, что с элементом (или другими элементами) может случиться что угодно, и он перестанет находиться в самом конце.
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993412
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa
skyANA
Очередной разговор слепого с глухим.
И все потому, что в сотый раз детали задачи не раскрыты.


Детали раскрыты полностью (См первый пост)
Требуется определить именно конец прокрутки станицы, а не то, что дойдем до какого то искусственно созданного элемента. Потому, что с элементом (или другими элементами) может случиться что угодно, и он перестанет находиться в самом конце.

А можете ответить на вопрос: для чего требуется определить то, что страница прокручена до конца?
В каком таком сценарии нужен именно универсальный скрипт?

Например для отложенной загрузки, или подгрузки контента Intersection Observer - самое то:
https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API

The Intersection Observer API provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document's viewport.

Intersection information is needed for many reasons, such as:
  • Lazy-loading of images or other content as a page is scrolled.
  • Implementing "infinite scrolling" web sites, where more and more content is loaded and rendered as you scroll, so that the user doesn't have to flip through pages.
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993527
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух,

А если надо подгружать контент когда до конца скролла осталось <10%, но не более 600px? :)
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993560
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Дмитрий Мух,

А если надо подгружать контент когда до конца скролла осталось <10%, но не более 600px? :)

Прям вот такие требования?

Обычно есть требуемое поведение, дизайн и определённая структура страницы.

Типа для ускорения первой загрузки мы отдаём вот только эту часть, окончание которой отмечено вот этим элементом.
А остальное догружаем, если пользователь докрутил до него.

Или у нас есть лента новостей, которую надо бесконечно подгружать, если пользователь докрутил до предпоследней новости.

И под это поведение пишутся тесты.
И если вдруг кто-то взял и перефигачил зачем-то структуру так, что функционал отвалился, то тесты это покажут.

Но обычно это "вдруг кто-то" случается только в фантазиях разработчиков
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993582
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
Прям вот такие требования?


Да, пример из настоящих требований.
Загрузка контента должна быть предупреждающий, ещё до того, как юзер докрутит до конца страницы.


Дмитрий Мух
Типа для ускорения первой загрузки мы отдаём вот только эту часть, окончание которой отмечено вот этим элементом.
А остальное догружаем, если пользователь докрутил до него.


Ну вот он докрутил и сидит ждёт загрузки.

Дмитрий Мух
Или у нас есть лента новостей, которую надо бесконечно подгружать, если пользователь докрутил до предпоследней новости.


В данном случае твоё решение подходит. Есть конкретный элемент, который является триггером.
А если его нет?
Можно конечно воткнуть какой-то див прозрачный, но это мусор, который никто в вёрстке не любит.

Пример с той же лентой новостей, если юзер докрутил до последней новости, это ещё не показатель, что нужно подгружать следующие данные, так как текст новости может быть большой.

Дмитрий Мух
И под это поведение пишутся тесты.
И если вдруг кто-то взял и перефигачил зачем-то структуру так, что функционал отвалился, то тесты это покажут.


Так можно и оправдать говнокод. Тесты же есть


Дмитрий Мух
Но обычно это "вдруг кто-то" случается только в фантазиях разработчиков


Случается всякое.
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993583
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Да, пример из настоящих требований.
Загрузка контента должна быть предупреждающий, ещё до того, как юзер докрутит до конца страницы.

Хорошо. С Intersection Observer это сделать без проблем.
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993584
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
hVostt
Да, пример из настоящих требований.
Загрузка контента должна быть предупреждающий, ещё до того, как юзер докрутит до конца страницы.

Хорошо. С Intersection Observer это сделать без проблем.


Я знаю что можно.
Вешаем паразитный мусорный див и обсервим.

Не понимаю, нахрена упали эти костыли, если можно трекать скролл? ))
Это зачем оно нужно?
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993585
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Дмитрий Мух
Типа для ускорения первой загрузки мы отдаём вот только эту часть, окончание которой отмечено вот этим элементом.
А остальное догружаем, если пользователь докрутил до него.


Ну вот он докрутил и сидит ждёт загрузки.

Докрутил до определённого места, отмеченного элементом. Ничем не отличается от твоих <10%.
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993587
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
Докрутил до определённого места, отмеченного элементом. Ничем не отличается от твоих <10%.


Да я не спорю, что можно.
Но зачем настаивать на этом решении?
Если триггером должен быть элемент -- ок.
А если это именно скролл, зачем упарываться?
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993589
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Не понимаю, нахрена упали эти костыли, если можно трекать скролл? ))
Это зачем оно нужно?

Документацию почитай:

https://developer.mozilla.org/ru/docs/Web/API/Intersection_Observer_API
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993591
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
hVostt
Не понимаю, нахрена упали эти костыли, если можно трекать скролл? ))
Это зачем оно нужно?

Документацию почитай:

https://developer.mozilla.org/ru/docs/Web/API/Intersection_Observer_API


Где там поддержка моего условия?
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993592
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух,

Покажи threshold < 10% && >= 600px
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993598
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Дмитрий Мух,

Покажи threshold < 10% && >= 600px

А скажи, что даёт твоё условие и мы попробуем тоже самое сделать через:

Настройки root
Элемент который используется в качестве области просмотра для проверки видимости целевого элемента.
Должен быть предком целевого элемента.
По умолчанию используется область видимости браузера если не определён или имеет значение null.

rootMargin
Отступы вокруг root.
Могут иметь значения как свойство css margin: "10px 20px 30px 40px" (top, right, bottom, left).
Значения можно задавать в процентах.
По умолчанию все параметры установлены в нули.

threshold
Число или массив чисел, указывающий, при каком проценте видимости целевого элемента должен сработать callback.
Например, в этом случае callback функция будет вызываться при появлении в зоне видимости каждый 25% целевого элемента: [0, 0.25, 0.5, 0.75, 1]
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993600
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993613
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
А скажи, что даёт твоё условие и мы попробуем тоже самое сделать через:

Настройки root
Элемент который используется в качестве области просмотра для проверки видимости целевого элемента.
Должен быть предком целевого элемента.
По умолчанию используется область видимости браузера если не определён или имеет значение null.

rootMargin
Отступы вокруг root.
Могут иметь значения как свойство css margin: "10px 20px 30px 40px" (top, right, bottom, left).
Значения можно задавать в процентах.
По умолчанию все параметры установлены в нули.

threshold
Число или массив чисел, указывающий, при каком проценте видимости целевого элемента должен сработать callback.
Например, в этом случае callback функция будет вызываться при появлении в зоне видимости каждый 25% целевого элемента: [0, 0.25, 0.5, 0.75, 1]


Да я блин знаю, как через это реализовать задуманное.

Вопрос, зачем? Задача очевидно решается на скролле.

У ТС задача -- узнать, когда пользователь доскролли до конца страницы.
Может он хочет в этот момент показывать окошечко с фоткой феерверков.

А обсервер мы тоже юзаем там, где это уместно. И даже для подгрузки контента, там где это уместно, где реально есть элемент, являющийся триггером.
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993622
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
У ТС задача -- узнать, когда пользователь доскролли до конца страницы.
Может он хочет в этот момент показывать окошечко с фоткой феерверков.

Я же изначально ТС-у написал:
Дмитрий Мух
Уж не для реализации "бесконечного скролла", где контент подгружается по мере того как страница прокручивается вниз, вам это нужно?
Если да, то Intersection Observer - самое то.
Конкретная задача - конкретное решение.


Весь этот флейм в очередной раз из-за того, что мы не знаем деталей задачи.
Вот уже допускаем, что а вдруг "он хочет в этот момент показывать окошечко с фоткой феерверков"
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993623
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух,

Нет уж друг, очевидно, ты прям хочешь впарить этот Intersection Observer ))
по поводу и без повода
про динамическую загрузку контента тоже речи не шло
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993624
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
А обсервер мы тоже юзаем там, где это уместно. И даже для подгрузки контента, там где это уместно, где реально есть элемент, являющийся триггером.

В примере выше контейнер, куда грузится контент и является триггером.
Как бы логично отследить что в место, где должен быть контент, последний загружается.

И никакого мусора.

Вообщем пора заканчивать. Думайте сами, решайте сами...
...
Рейтинг: 0 / 0
Как определить что страница прокручена до конца?
    #39993625
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Дмитрий Мух,

Нет уж друг, очевидно, ты прям хочешь впарить этот Intersection Observer ))
по поводу и без повода
про динамическую загрузку контента тоже речи не шло
Чего?

Дмитрий Мух
Intersection information is needed for many reasons, such as:
  • Lazy-loading of images or other content as a page is scrolled.
  • Implementing "infinite scrolling" web sites, where more and more content is loaded and rendered as you scroll, so that the user doesn't have to flip through pages.
Ровно два сценария я упомянул: динамическая загрузка и "бесконечный скролл".
И считаю, что именно для них Intersection Observer - самое то.
...
Рейтинг: 0 / 0
25 сообщений из 70, страница 2 из 3
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как определить что страница прокручена до конца?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]