希望对于有Javascript时间的人来说,这将是一个简单的答案......
我有一个日志文件正由一个脚本监视,该脚本将日志中的新行提供给任何连接的浏览器.有几个人评论说他们想要看到的更像是'tail -f'行为 - 最新的行总是位于浏览器页面的底部,直到观众向后滚动查看某些内容.滚动到底部应该会返回到自动滚动行为.
我对这个问题的谷歌罢工是 - 希望 - 只是对javascript一无所知,因此,不知道要搜索哪些关键字.我不需要一个完整的解决方案 - 只是一个'足够接近',让我跳进去弄脏手.
编辑:
我一直在尝试scrollTop/scrollHeight的想法,但我显然遗漏了一些东西.我用Javascript做的几乎没有,所以我可能再问一些非常低级的问题:
这是许多排列中的一种.显然,我无法在javascript中逐行输出日志,但我只是想看到正确的行为.我需要什么缺少的链接?
再次编辑:这已成为我最初预期的一个更有趣的问题.使用window.scroll的代码建议确实可以解决问题.我开始玩限制滚动仅在浏览器位于文档正文的底部时发生.这在理论上很容易做到,但在实践中它遇到了障碍:
每次从服务器获取新文本时,正文的大小都会增加,当前滚动位置不再位于文档的底部.您无法再区分(使用scrollHeight,clientHeight和scrollTop)用户是否已向上滚动或文本是否刚刚超出其视图.
我认为,如果这将起作用,我将不得不承诺在用户滚动时触发JS事件,如果它们在窗口底部之上则关闭滚动,但是如果它会重新打开则它们已向下滚动到有效位于视图底部的位置.我正在看onScroll事件,鉴于我提到的变量数学计算得很好,我认为我在这里正确的道路上.感谢您的投入,大家!
x = 0; //horizontal coord y = document.height; //vertical coord window.scroll(x,y);
要滚动整个文档,请使用以下命令:
window.scrollTo(0, document.body.scrollHeight);
如果你只有一个可滚动的div或者某个东西,那么这个过程是不同的:
var obj = $('id'); obj.scrollTop = obj.scrollHeight;