希望对于那些落后于 Javascript 时间的人来说,这将是一个简单的答案......

我有一个脚本正在监视一个日志文件,该脚本将注销中的新行提供给任何连接的浏览器。一些人评论说他们想要看到的更多是“tail -f”行为 - 最新的行将始终位于浏览器页面的底部,直到查看者向上滚动以查看某些内容。滚动回底部应该会返回到自动滚动行为。

我的谷歌三振出局是 - 希望 - 只是对 javascript 一无所知,因此,不知道要搜索什么关键字。我不需要一个完整的解决方案——只需要一个“足够接近”的东西,让我跳进去弄脏我的手。

编辑:

我一直在尝试 scrollTop/scrollHeight 的想法,但我显然错过了一些东西。我几乎没有使用 Javascript,所以我可能再次问了非常低级的问题:

<html><body>
<script type="text/javascript">
for (i=0; i<100; i++)
{
    document.write("" + i + "<br />");
    document.scrollTop = document.scrollHeight;
}
</script>
</body></html>

这是许多排列之一。显然,我无法在 javascript 中逐行输出日志,但我只是想看看正确的行为。我在这里需要的缺失链接是什么?

再次编辑:
这已经变成了我最初预期的一个更有趣的问题。使用 window.scroll 的代码建议确实可以解决问题。我开始尝试将滚动限制为仅在浏览器位于文档正文底部时发生。这在理论上很容易做到,但在实践中遇到了障碍:

每次从服务器获取新文本时,正文的大小都会增加,并且您当前的滚动位置不再位于文档底部。您无法再区分(使用 scrollHeight、clientHeight 和 scrollTop)用户是向上滚动还是文本刚刚超出了他们的视野。

我认为,如果这行得通,我将不得不 promise 让自己在用户滚动时触发 JS 事件,如果它们位于窗口底部上方,则关闭滚动,但如果它们已向下滚动到有效位于 View 底部的位置。我正在查看 onScroll 事件,鉴于我提到的变量的数学计算效果很好,我认为我在这里走的是正确的道路。谢谢大家的意见!

最佳答案

x = 0;  //horizontal coord
y = document.height; //vertical coord
window.scroll(x,y);

关于自动滚动到不断增长的页面底部的 Javascript 机制?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/387592/

10-16 13:05
查看更多