javascript - jquery scrollTop 到元素 scrollHeight 不起作用?
问题描述
我正在创建一个简单的聊天。每次收到新消息时,我都需要滚动到屏幕底部。
但是,我的滚动到底部的代码根本不起作用。
为了证明这一点,我创建了这个小提琴:
https://jsfiddle.net/jcp1sw23/
这是我的jQuery代码:
$(document).on("click",".sendPm",function() {
var txt = $('#message2').val();
var htm = '<li id="'+ txt +'" class="self"><div class="msg"><p>'+ txt +'</p><time>7:45</time></div></li>';
$(".endDivChat").before(htm);
var $t = $('#messages');
$t.animate({"scrollTop": $('#messages')[0].scrollHeight}, "slow");
});
如果您键入几条消息直到messages
元素已满,您应该会看到滚动条出现。但它不会动画或滚动到底部。
具体来说,这是我滚动到底部的代码:
var $t = $('#messages');
$t.animate({"scrollTop": $('#messages')[0].scrollHeight}, "slow");
有人可以就这个问题提出建议吗?
非常感谢。
解决方案
$("html, body").animate({"scrollTop": $('#messages')[0].scrollHeight}, "slow");
您正在选择前面的消息,您想要 html 正文,因为那是滚动的内容:)
这是它的工作原理:https ://jsfiddle.net/jcp1sw23/31/
推荐阅读
- javascript - 如何编写正确缩进方案代码的 JavaScript 函数?
- swift - 在协议中实现某种形式的枚举
- sql-server - 链接服务器“(null)”的 OLE DB 提供程序“MSDASQL”报告了错误。提供商没有提供有关错误的任何信息
- javascript - 如何同步分页和输入范围?
- kotlin - vert.x JDBCAuth 不在 RoutingContext 中存储用户对象
- pgadmin-4 - pgadmin4:创建 SSH 隧道失败(在 W10 上)
- c# - 从代码隐藏中正确使用新实例化的用户控件
- c# - 在 C# winform 中删除运行时生成的控件
- r - 忽略R中列顺序的数据框的行频
- python - 如何从图形生成二维数组(里面有逗号)