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

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

17.09.2013, 13:19. Показов 2557. Ответов 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,223
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,223
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,223
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru