Я создаю сайт для обмена сообщениями и хочу, чтобы чат автоматически прокручивался в конец ленты чата (последнее сообщение) при обновлении страницы. Я очень новичок в jQuery, и после небольшого поиска я заставил его работать с animate()
. Это замечательно, когда страница сначала загружается слишком резко, например, при перезагрузке после отправки формы.
Есть ли способ автоматической прокрутки до дна контейнера без его анимации?
// When page loads
$(document).ready(function(){
// Load chat. ALSO the chat has to be hard coded in here.
$('#MessagesContainer').load('/php/chat_ref.php');
// Scroll to the bottom of the page. ALSO ".height()+500" was a bit of a bodge.
$("#MessagesContainer").animate({ scrollTop:$('#MessagesContainer').height()+500}, 100);
return false;
});
// Every 2 seconds.
var auto_refresh = setInterval(function(){
// Reload the chat.
$('#MessagesContainer').load('/php/chat_ref.php');
return false;
}, 2000);
scrollTop()
вручную:$("#MessagesContainer").scrollTop($('#MessagesContainer').height()+500);
. Однако вы должны отметить, что опрос AJAX - действительно плохая идея, поскольку он вообще плохо масштабируется. Чтобы создать систему чата, вы должны использовать веб-сокеты или события, отправленные сервером. - person Rory McCrossan   schedule 24.02.2019