У меня есть чат-система, которую я создаю в рамках MVC, используя jQuery/AJAX. Когда страница загружается, она заполняет окно чата последними ответами из базы данных.jQuery scrollTop не работает на загрузке страницы
Я искал всюду для ответа и ничего не могу найти по этому поводу. Каждая альтернатива, которую я пробовал, не разрешает ее.
Эта функция используется для прокрутки вниз до нижней части окна чата;
function scrollToBottom()
{
var panel = $('.panel-body#main-window');
panel.scrollTop(panel.height());
}
Это мой CSS:
.panel-body#main-window
{
overflow-y: scroll;
height: 550px;
width: 100%
}
Это прекрасно работает, когда я привязать его к функции обработчика OnClick, но независимо от того, что я пытался, он не будет прокручиваться на дно моя панель до конца моего звонка $(document).ready();
. Поэтому, когда страница загружена, она не прокручивается до нижней части моего контейнера.
Пробовал это как в Firefox, так и в Chrome и не работал. Моя функция вызывается, но когда она вызвана внутри $(document).ready();
, она отказывается прокручивать ее до нижней части моей панели.
Я также пробовал эту функцию, которая тоже не работает;
$(window).on('load', function(){
setTimeout(scrollToBottom(), 500);
});
Является ли панель видимой в момент прокрутки? Если нет, '.height()' вернет '0'. – melancia
@MelanciaUK; нет, это не проблема. Я использовал console.log, чтобы вернуть высоту, и возвращает правильное значение. Даже попробовал вручную настроить свой собственный. Функция возвращает объект DOM и правильную высоту. Он просто не работает на загрузке страницы. –
Нет ничего плохого в коде, размещенном здесь (кроме использования setTimeout, уже упомянутого в ответе ниже): например. http://jsfiddle.net/znxca14s/ Можете ли вы сделать воспроизводимый образец? – blgt