Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
Человек
 Аватар для dolte
331 / 205 / 63
Регистрация: 04.02.2013
Сообщений: 1,224

Подключение контента при прокрутке

17.09.2013, 13:19. Показов 2604. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сейчас имею такой код :

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var request1 = new XMLHttpRequest();request1.open('GET', '/complete/moonbeam-suhov/page1.html');
var request2 = new XMLHttpRequest();request2.open('GET', '/complete/moonbeam-suhov/page2.html');
var request3 = new XMLHttpRequest();request3.open('GET', '/complete/moonbeam-suhov/page3.html');
var request4 = new XMLHttpRequest();request4.open('GET', '/complete/moonbeam-suhov/page4.html');
var request5 = new XMLHttpRequest();request5.open('GET', '/complete/moonbeam-suhov/page5.html');
        request1.send(null)
        request2.send(null)
        request3.send(null)
        request4.send(null)
        request5.send(null)
var html = document.documentElement;
window.onscroll = function ()
    {
    var element1 = document.querySelector('.ms-showphoto1');
    var element2 = document.querySelector('.ms-showphoto2');
    var element3 = document.querySelector('.ms-showphoto3');
    var element4 = document.querySelector('.ms-showphoto4');
    var element5 = document.querySelector('.ms-showphoto5');
 
    var clienth = html.clientHeight;
 
        if (clienth <= 768 )
        {
            if ($(this).scrollTop() >= clienth + 200 ){element1.innerHTML = request1.responseText;}
            if ($(this).scrollTop() >= clienth + 1200){element2.innerHTML = request2.responseText;}
            if ($(this).scrollTop() >= clienth + 2200){element3.innerHTML = request3.responseText;}
            if ($(this).scrollTop() >= clienth + 3200){element4.innerHTML = request4.responseText;}
            if ($(this).scrollTop() >= clienth + 4200){element5.innerHTML = request5.responseText;}
        }
 
    }
выщитывается область где находится скролл, подключается контент из файла на страницу.

Хотелось бы сделать это не зависимым от высоты, т.к если монитор больше, то не работает.
Прокрутили до низа страница, подкрузился первый эллемент, еще ниже, второй эллемент.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.09.2013, 13:19
Ответы с готовыми решениями:

Ajax-подгрузка контента при прокрутке страницы
Всем привет. Я хочу реализовать авто-подгрузку постов в новостной ленте при помощи Ajax запросов, но что-то он отказывается у меня выводить...

Эффекты при прокрутке страницы
Как добавляются эффекты при прокручивании страницы? Допустим что бы анимация секции страницы выполнялась не при загрузке, а при появлении...

Блок не исчезающий при прокрутке
Как сделать следующее - блок находится в другом блоке и вместе с ним двигается, но если при прокрутке он должен уйти то остается на месте?

6
284 / 283 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
17.09.2013, 13:52
Можно получить высоту экрана

JavaScript
1
$(window).height()
и от неё отталкиваться.
Если я Вас правильно понял)
0
Человек
 Аватар для dolte
331 / 205 / 63
Регистрация: 04.02.2013
Сообщений: 1,224
17.09.2013, 14:00  [ТС]
sMockingbird, не совсем так.
Мне нужно отказаться от
clienth + 200
clienth + 1200

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

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

как я это вижу
-Прокрутили
*загрузили
/пауза
-Прокрутили
*загрузили слейдующее
/пауза
...
0
284 / 283 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
17.09.2013, 14:07
Не совсем понял.
А почему у Вас сейчас цифры именно 200 и 1200?
Откуда Вы сейчас их взяли?
0
Человек
 Аватар для dolte
331 / 205 / 63
Регистрация: 04.02.2013
Сообщений: 1,224
17.09.2013, 14:13  [ТС]
высота рабочей области + 200 пикселей.
далее высота рабочей области +1200 пикселей
JavaScript
1
2
if ($(this).scrollTop() >= clienth + 200 ){element1.innerHTML = request1.responseText;}
            if ($(this).scrollTop() >= clienth + 1200){element2.innerHTML = request2.responseText;}
т.е при высоте рабочей области 650, контент добавится при высоте скролла 850 пикселей.
ну и с 1200 аналогично.

сейчас пытаюсь использовать

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var thisPageNum = 1;
var thisWork = 1;
function getNextP1(){
    if(thisWork == 1 && thisPageNum < 2){thisWork = 0;
        $("#upBlock").css('display','block');
        $.get("get.php?page="+thisPageNum, function(data){
        $("#upBlock").css('display','none');
        $("#LoadDiv").html($("#LoadDiv").html()+" "+data);
        thisPageNum = thisPageNum + 1;
        thisWork = 1;
        });
    }
}
 
$(document).ready(function(){
var scrH = $(window).height();
var scrHP = $("#container").height();
$(window).scroll(function(){
    var scro = $(this).scrollTop();
    var scrHP = $("#container").height();
    var scrH2 = 0;
    scrH2 = scrH + scro;
    var leftH = scrHP - scrH2;
if(leftH < 100){
    getNextP1();
    }
});
});
прокручиваю вниз,

добавляется содержимое их get.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
header("Content-Type: text/html;charset=windows-1251");
$p = $_GET['page']*10;
for($i=($p+1);$i<($p+10);$i++){
echo '
<div class="uBlock">
Это тестовый комментарий №'.$i.'<br />
Тут второй блок
</div>
';
    }
?>
thisPageNum < 2 устанавливает сколько раз подгружать.
мне нужно после того как загрузили get.php
при следующей прокрутке загружать из get2.php
0
284 / 283 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
17.09.2013, 14:22
Немножко уйду в сторону и предложу такое: что если проверять на прокрутку так

JavaScript
1
jQuery(document).height() - jQuery(window).scrollTop() - jQuery(window).height()
если это число равно 0, значит страница прокручена в самый низ и значит надо грузить контент. Можно, как вариант, присваивать класс, к примеру body в котором указывать номер подгруженного контента, т.е. при первой подгрузке присвоится класс 1, при след. он проверит и плюс один сделает)
как то так)

Добавлено через 46 секунд
Можно даже не на равенство 0 проверять, а, к примеру, если меньше скольки то пикселей, то грузить)
0
Человек
 Аватар для dolte
331 / 205 / 63
Регистрация: 04.02.2013
Сообщений: 1,224
17.09.2013, 15:04  [ТС]
sMockingbird, сложно представляю

Добавлено через 8 минут
Есть ли более простой вариант ? чтото типо паузы

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
var thisPageNum = 1;
var thisWork = 1;
var thisPageNum2 = 2;
var thisWork2 = 2;
function getNextP1(){
    if(thisWork == 1 && thisPageNum < 2){thisWork = 0;
        $("#upBlock").css('display','block');
        $.get("get/get1.php?page="+thisPageNum, function(data){
        $("#upBlock").css('display','none');
        $("#LoadDiv").html($("#LoadDiv").html()+" "+data);
        thisPageNum = thisPageNum + 1;
        thisWork = 1;
        });
    }
}
function getNextP2(){
    if(thisWork2 == 2 && thisPageNum2 < 3){thisWork2 = 0;
        $("#upBlock").css('display','block');
        $.get("get/get2.php?page="+thisPageNum2, function(data){
        $("#upBlock").css('display','none');
        $("#LoadDiv").html($("#LoadDiv").html()+" "+data);
        thisPageNum2 = thisPageNum2 + 1;
        thisWork2 = 2;
        });
    }
}
 
$(document).ready(function(){
var scrH = $(window).height();
var scrHP = $("#container").height();
$(window).scroll(function(){
    var scro = $(this).scrollTop();
    var scrHP = $("#container").height();
    var scrH2 = 0;
    scrH2 = scrH + scro;
    var leftH = scrHP - scrH2;
if(leftH < 10){
    getNextP1();
           //крутим ниже
    getNextP2();
    }
});
});
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.09.2013, 15:04
Помогаю со студенческими работами здесь

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

Появление блоков при прокрутке
Есть два блока с высотой 100vh, как сделать, чтобы при прокрутке на второй блок, появлялся определенный блок?

Ajax-подгрузка контента при прокрутке страницы
Здравствуйте, долго мучаюсь с кодом, не могу найти где ошибка. Дело в том, что код должен подгружать страницы, при скроллинге/нажатии на...

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

Баг при плавной прокрутке
Приветствую. Ситуация следующая - есть сайт http://459058.worldour.web.hosting-test.net/ при переходе на одну из восьми студий в шапке, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru