javascript - 当呈现的数据很多时,ScrollTop 不会滚动到底部 - Jquery
问题描述
我正在开发一个 Web 应用程序,其中有自定义控制台日志,我在其中显示所有消息,以及使用套接字在应用程序中发生的任何事情。每次发生套接字事件时,它都会将一个li
元素附加到列表中并将容器滚动到最底部以在日志中显示新消息。
但是,当渲染的数据变得很多时,滚动条不会到最底部,而只是停留在同一个地方。只需点击几下,它就会滚动到底部。
以下是我的代码: -
socket.on("consoleData", function(data) {
$(".log-container ul").append("<li><b>" + data.a + "<b> : " + data.m + "</li>");
$('.log-container').animate({
scrollTop: $('.log-container').height()
}, 500);
});
解决方案
这段代码的基本问题是,我取了父元素的高度,即;$('.log-container').height()
等于328px
。另一方面,我将li
元素附加到ul
,而不是div.log-container
本身。这只会增加 的高度,ul
其父级滚动这些元素。当我发现它的高度时ul
,6000+px
元素只滚动到328px
.
所以现在他们两个都为我工作:
//Method One, using Animate property.
$(".log-container").animate({
scrollTop: $(".log-container ul").height()
}, 800);
//Method Two, using scrollTop()
$(".log-container").scrollTop($(".log-container ul").height());
推荐阅读
- sql - 在 SQL 中插入重复值
- wordpress - 在 Smart Slider Carousel 上使活动幻灯片稍大
- php - 使用 Angular6-Yii2 上传图片和文字
- python - 在numpy中查找第一个非零行
- java - API alfresco repository 6.X 或 7.X 版本的应用上下文初始化问题
- java - 当我更改边框布局时,JPanels 不会四处移动
- javascript - 使用 paper.js importSVG() 时,如何更改其路径?
- php - Laravel 模型查询错误:“Illuminate\Database\QueryException:SQLSTATE[23000]:完整性约束违规”
- client-server - 使用共享内存在本地实现服务器
- angular - 使用 ng new 命令创建一个新的 Angular CLI 工作区会给出数据路径“.name”应该匹配格式“html-selector”