Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как узнать насколько проскроллена страница в режиме реального времени (https://javascript.ru/forum/jquery/58902-kak-uznat-naskolko-proskrollena-stranica-v-rezhime-realnogo-vremeni.html)

goooooch 16.10.2015 11:34

Как узнать насколько проскроллена страница в режиме реального времени
 
Всем привет.

Есть некий элемент с неким классом, который находится на странице в некотором месте.

Например, <div class="content">Я тут</div>

Нужно сделать так, чтобы в тот момент, когда пользователь доскроллил документ до div.content, происходило некое действие.

Работает такая конструкция:

if($(window).scrollTop() + $(window).height() > $(".content").offset().top)
		alert('GO AJAX!');


но у нее имеется недостаток — значение $(window).scrollTop() считается только на момент загрузки страницы.

Если мы будем скроллить страницу после того, как страница загрузилась, $(window).scrollTop() остается неизменной величиной, а нужно, чтобы эта величина передавалась в режиме реального времени.

Возможно, есть другое решение моей задачи. Возможно, можно тюнинговать мою конструкцию. Буду рад за любую помощь в решении данного вопроса.

рони 16.10.2015 11:39

Цитата:

Сообщение от goooooch
Если мы будем скроллить страницу после того, как страница загрузилась, $(window).scrollTop() остается неизменной величиной, а нужно, чтобы эта величина передавалась в режиме реального времени.

так и поставьте ваше условие в
Цитата:

Сообщение от goooooch
скроллить страницу

http://api.jquery.com/scroll/

kreker 18.10.2015 22:36

конструкция должна быть вне $(document).ready(function() {});
$(window).scroll(function() {
	if($(window).scrollTop() + $(window).height() > $(".content").offset().top)
        alert('GO AJAX!');
	});
});

goooooch 24.11.2015 13:56

Можно ли при ресайзе окна браузера в режиме реального времени получать информацию о том, на каком расстоянии от "левого края" окна находится объект div.info, например?

left_position = $('.info').offset().left;
определяет значение на момент загрузки страницы, но задача в получении данных в режиме "онлайн".


Часовой пояс GMT +3, время: 18:53.