呈现大量数据时ScrollTop不会滚动到底部-jQuery

时间:2018-08-11 05:14:38

标签: javascript 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);

});

如您所见,当控制台数据变大时,滚动条不会移动。 enter image description here

1 个答案:

答案 0 :(得分:0)

此代码的基本问题是,我已经考虑了父元素的高度,即; [TestMethod] public void GetPointIntersectionRayAndTriangleCheckOnResult() { Vector3? vector1 = ComputationsInThreeDimensionalSpace.GetPointIntersectionRayAndTriangle( new Vector3(1, 1, 2), new Vector3(0, 0, -4), new Vector3(0, 0, 0), new Vector3(4, -1, 0), new Vector3(0, 5, 0)); if (!vector1.HasValue) { Assert.Fail(); } Assert.AreEqual(new Vector3(1, 1, 0), vector1.Value); } 等于$('.log-container').height()。另一方面,我将328px元素附加到li,而不是ul本身。这只会增加div.log-container的高度,并且其父级会滚动这些元素。当我发现ul的高度为ul时,元素仅向上滚动到6000+px

所以现在他们两个都对我有用:

328px