Это мой код:
var message;
var ul = $('.chat');
var btn = $('#btnEnviar');
btn.click(()=>{
message = $('#Mensaje').val()
ul.append('<li>'+message+'</li>');
})
$('#Mensaje').keyup((e)=>{
(e.which === 13) && ul.append('<li>'+$('#Mensaje').val()+'</li>')
})
rest of the code is here:
[https://codepen.io/willmsha/pen/zyQVPb][1]
Как вы, ребята, видите, мне приходится прокручивать вниз после нескольких раз добавления нового сообщения на ul.
Есть ли шанс предотвратить это, кроме как с помощью чего-то вроде этого:
window.scrollTo(0,document.body.scrollHeight);
Итак, что я хочу сделать, это что-то вроде добавления тега li в конец ul, чтобы мне не приходилось прокручивать вниз при добавлении нового сообщения.
append уже всегда добавляет в низ. Если вы хотите оставить экран внизу, см. этот вопрос.
Разместите здесь свой код, используя фрагмент кода StackOverflow, а не ссылаясь на внешние сайты с кодом.
@HereticMonkey спасибо, это то, что я искал. connexo действительно пытался, но потерпел неудачу



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Просто используйте метод .scrollIntoView(). Добавьте это в свой прослушиватель btn.click:
var children = document.getElementsByClassName("chat")[0].childNodes;
children[children.length-1].scrollIntoView();
Подробнее об этом читайте здесь: https://www.w3schools.com/jsref/met_element_scrollintoview.asp
если вы добавите динамический идентификатор к каждому
<li>, вы можете прокрутить до смещения.верх этого идентификатора.