Jump to content
  • 0

Как при скролле страницы посылать асинхронный запрос и достраивать DOM-модель?


ХОЛОДный
 Share

Question

Привет, подкиньте, пожалуйста, ссылок, где есть решение похожей задачи.

1. Есть html страница, на которой изначально выгружено 10 DIV'ов с текстом.

2. Юзер скроллит страницу вниз, я определяю, что он доскроллился до последнего DIV'а.

3. Со страницы уходит асинхронный запрос к серверу, ответ от сервера интерпретируется и к первым 10 DIV'ам добавляются еще 10.

Как сделать второй пункт?

Как мне определить, что юзер долистался до последнего DIV'a, и что пора посылать запрос?

Спасибо!

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Позиция скролла:

document.getScroll = function() {
return {
x: window.pageXOffset || document.documentElement.scrollLeft || (document.body || {}).scrollLeft || 0,
y: window.pageYOffset || document.documentElement.scrollTop || (document.body || {}).scrollTop || 0
};
};

Позиция элемента: http://javascript.ru/ui/offset

Link to comment
Share on other sites

  • 0
2. Юзер скроллит страницу вниз, я определяю, что он доскроллился до последнего DIV'а.

Определяем событие скроллинга:

var skrl = document.getElementById('div_10');
// Для Mozilla:
if (skrl.addEventListener)
{
get(skrl.addEventListener('DOMMouseScroll', wheel, false);
}
// Для остальных браузеров :
get('content').onmousewheel = wheel;

'div_10' - id блока на который вешаем событие;

wheel - функция-обработчик события.

Здесь пример...

Link to comment
Share on other sites

  • 0
Определяем событие скроллинга:

var skrl = document.getElementById('div_10');
// Для Mozilla:
if (skrl.addEventListener)
{
get(skrl.addEventListener('DOMMouseScroll', wheel, false);
}
// Для остальных браузеров :
get('content').onmousewheel = wheel;

'div_10' - id блока на который вешаем событие;

wheel - функция-обработчик события.

Здесь пример...

Я, наверное, туповат, но я не понял, как определить, появился ли мой DIV на экране, или нет.

У меня может быть 10 ДИВов в столбик, каждый - по 200 пикселей в высоту.

Часть ид ДИВов будет не видна, т.к. юзер до них еще не домотался.

Как бы мне это определить?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy