Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492

Как в диалогах scroll постоянно держат внизу?

15.03.2017, 01:29. Показов 2454. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Скажите пожалуйста, как в переписках scroll постоянно держится внизу как это организовано?
Пот например что бы scroll перемотать вниз, надо типа высоту всех дочерних элементов посчитать+отступы между ними всякие и после выставлять scrollTop('то что получилось'), или можно как то командой задать для перемотки сразу всамый низ??
Ну или после добавления нового сообщения опять считать всё по новой или всё таки опять есть какая то команда для перемотки вниз после обновления? Но когда добавляешь код посредством JavaScript'а например с помощью .prependTo(), дальше же ведь не сделать последующее выполнения функций типа того:
JavaScript
1
2
3
4
5
6
7
$('#id').fadeIn('slow', function() {
   //ещё что нибудь
});
// а хотелось бы что то типа токого
$('<div>Текс</div>').prependTo('#id', function() {
   //ещё что нибудь
});
Тоесть буквально мой вопрос звучит так:
Как это всё сделать проще и быстрее(скорость выполнения)?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.03.2017, 01:29
Ответы с готовыми решениями:

Scroll внизу чата
Есть чат (точнее диалоги) получилось сделать скролл внизу после обновления страницы, но когда приходит новое сообщение или пишу новое...

Расположить Scroll внизу при открытии окна диалога
Как сделать так как в диалогах в вк, ты открыл диалог. И страница по дефолту внизу находится и ты скроллишь вверх?

Как на андройде постоянно отображать горизонтальный скролл, который задан через overflow-x: scroll; ?
Ну и до кучи как на Aple? У меня мобильники эти сроллы скрывают.

7
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
15.03.2017, 02:55
Zazu, свойство scrollHeight вам в помощь. Смотрим пример
CSS+HTML+JS
CSS
1
2
3
4
5
6
div {
    width: 200px;
    height: 200px;
    border: 1px solid #999;
    overflow-y: scroll;
}
HTML5
1
2
<div></div>
<button>Add message</button>
JavaScript
1
2
3
4
5
6
7
8
var message = 'Some text',
div = $('div');
 
$('button').on('click', function(){
    div.append(message).animate({
        scrollTop: div.get(0).scrollHeight
    });
});

P.S. Поточнее выбирайте раздел. Для вашего вопроса, есть более подходящий - jQuery.
1
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
15.03.2017, 10:38  [ТС]
Lazy_Den, а какую функцию в вашем примере выполняет запись .get(0) ??
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
15.03.2017, 11:53
Zazu, описание метода .get(), как и всех остальных методов, можно найти в официальной документации.
0
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
15.03.2017, 15:30  [ТС]
Lazy_Den, скажите пожалуйста, а как сделать в вашем примере что бы скролл прокручивался у body?
Ну чтоб были что то подобие этого:
JavaScript
1
2
3
4
5
$('button').on('click', function(){
    div.append(message, function(){
        $('body').scrollTop(div.get(0).scrollHeight);
    });
});
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
15.03.2017, 16:05
JavaScript
1
2
3
4
$('button').on('click', function(){
    div.append(message);
    $(window).scrollTop($(document).height());
});
0
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
15.03.2017, 17:46  [ТС]
Lazy_Den, в вашем последнем примере они выполняются одновременно, скролл может не прокрутиться вниз, я вот поэтому и спрашиваю как осуществить поочерёдное выполнение!
сейчас я использую setTimeout, ставлю на 100 млс. и в него уже $('body').scrollTop(div.get(0).scrollHei ght)
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
15.03.2017, 23:17
Цитата Сообщение от Zazu Посмотреть сообщение
скролл может не прокрутиться вниз
Если у вас есть причины это предполагать, то setTimeout вполне нормальное решение. Только 100 миллисекунд для этого многовато. Достаточно и 5-10.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2017, 23:17
Помогаю со студенческими работами здесь

Вертикальный scroll, включенный постоянно
Сайт содержит каталог, при листании которого наблюдается неприятный эффект: на некоторых страницах текста чуть больше, чем помещатся на...

Иконки сохранения и открытия, как в диалогах
Добрый день. Нужны иконки сохранения и открытия файлов, как в диалогах. В формате .bmp. Понимаю, что поиск, понимаю, что гугл, но что-то...

Как вывести данные в диалогах при открытии формы?
1. Как вывести данные в диалогах формы, при открытии формы? В Edit1, Edit2, были след. данные: '192.168.1.1' и '192.168.1.254'. В полях...

Как можно в диалогах открытия, сохранения изменить предлагаемые папки в левой части диалога?
Подскажите, как можно в диалогах открытия, сохранения изменить предлагаемые папки в левой части диалога. И в окне мой компьютер как...

При scroll'e не пролистываются объекты, имеющие компонент scroll rect
Есть главная панель со scroll rect'ом для горизонтального scroll'а и event trigger'ом (для проверки пролистывания) с дочерними объектами,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru