Обнаружение, когда пользователь прокрутил до пикселя непосредственно перед тем, как увидеть нижний колонтитул

#javascript #jquery

#javascript #jquery

Вопрос:

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

Вот как я пытаюсь вычислить позицию непосредственно перед нижним колонтитулом:

 footerVisible = $(document).height() - $(window).height() - $('footer').height() - 1;
alert(footerVisible);
  

Я беру высоту всего документа и вычитаю высоту области просмотра и высоту нижнего колонтитула.

Это меня настораживает 3695 .

Теперь я регистрирую положение прокрутки следующим образом:

 $window.scroll(function(e){
    console.log($window.scrollTop());
}
  

При прокрутке до самого низа документа (т. Е. Просмотр полного нижнего колонтитула и конца документа) консоль указывает, что я нахожусь на позиции 3211 .

Моя логика явно где-то ошибочна…

Как я могу вычислить позицию «scrollTop», в которой пользователь будет находиться непосредственно перед тем, как он увидит первый пиксель нижнего колонтитула. Может ли кто-нибудь предоставить скрипку, которая выдает предупреждение до того, как пользователь увидит нижний колонтитул?

РЕДАКТИРОВАТЬ скрипку можно здесь

Комментарии:

1. Не могли бы вы указать, что у вас есть, чтобы кто-нибудь мог правильно изложить?

2. @Seth Я загрузил скрипку! Кроме того, кто бы ни проголосовал против, я хотел бы получить объяснение, почему это не вопрос о программировании в соответствии с правилами, определенными в справочном центре? С объяснением я мог бы, надеюсь, улучшить вопрос, чтобы попытаться получить ответ на вопрос, который раньше здесь не задавался, и который, возможно, также может быть полезен другим в будущем 🙂

Ответ №1:

Чтобы увидеть «первый пиксель нижнего колонтитула», положение прокрутки должно быть на один пиксель меньше на одну высоту окна от высоты нижнего колонтитула.

 var footerVisible = $(document).height() - $(window).height() - $('footer').height() - 1;
  

Ваша функция прокрутки должна быть примерно такой:

 $(window).scroll(function() {
    if( $(window).scrollTop() >= footerVisible ) {
        alert('Footer Visible');
    }
});
  

Комментарии:

1. Да, но на самом деле это не моя проблема, footerVisible она находится 3695 в моем браузере, когда я вычисляю ее таким образом («добавляя» ваш -1, который я забыл), но когда я прокручиваю до самого низа, я только нахожусь 3211 . Я считаю, что это не может быть способом вычислить точку, в которой появится нижний колонтитул.

2. Я загрузил туда скрипку!