Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как загрузить дополнительный контент дистанционно (https://javascript.ru/forum/events/36044-kak-zagruzit-dopolnitelnyjj-kontent-distancionno.html)

Mateus 01.03.2013 22:05

Как загрузить дополнительный контент дистанционно
 
Доброго времени суток.
На странице в нижней части блока находится div id="add_more", по его клику загружается дополнительный контент. На каждый клик загружается 5 дополнительных фотографий. Есть желание сделать все автоматически, т.е. пользователь доскролил до определенного момента и в это время загружаются фотографии.
Вот код php :
echo '<div onclick="add_more()" id="right" class="add_more" data-gal="3">Add more</div>';


Была идея сделать так :

$(function() {
		var offset = $(".add_more").offset();
		$(window).scroll(function() {
			if ($(window).scrollTop() > offset.top +1000) {
			add_more();
					}
		;});	
	});


Но после загрузки контента, offset меняется и не получается обновить эту переменную.
Какие у вас есть идеи? Заранее благодарен

Deff 02.03.2013 01:56

Mateus,
запускать setInteral-таймер после подгрузки и смотреть разницу offset между циклами, при нулевой разнице, отключаем setInteral

danik.js 02.03.2013 02:08

У вас в коде есть функция, которая обрабатывает ответ от сервера, вставляет на страницу подгруженный контент. Вот в ней после этой вставки нужно обновлять значение offset. Если у картинок не указаны width/height - это создаст дополнительные трудности.

Mateus 08.03.2013 17:55

Вот дело в том, что расстояние 1000px это расстояние до div, оно должно быть постоянным. Т.е. этот код находится в самом низу diva, куда подгружается новый контент.

echo '<div onclick="add_more()" id="right" class="add_more" data-gal="3">Add more</div>';


Весь контент подгружается до этого дива и расстояние до контента всегда будет 1000, но вот offset.top будет всегда увеличиваться ( на высоту картинок ). Как обновить информацию о высоте этого дива в условии?


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