Javascript机制自动滚动到增长页面的底部?

时间:2008-12-22 22:32:25

标签: javascript browser scroll

希望对于有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)用户是否已向上滚动或文本是否刚刚超出其视图。

我认为如果这样做,我将不得不承诺在用户滚动时触发JS事件,如果它们在窗口底部上方则关闭滚动,但是转动它如果他们已经向下滚动到有效位于视图底部的点,则返回。我正在看onScroll事件,鉴于我提到的变量数学计算得很好,我认为我在这里正确的道路上。感谢您的投入,大家!

6 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:7)

要滚动整个文档,请使用以下命令:

window.scrollTo(0, document.body.scrollHeight);

如果你只有一个可滚动的div或者某个东西,那么过程是不同的:

var obj = $('id');
obj.scrollTop = obj.scrollHeight;

答案 2 :(得分:3)

for (i = 0; i < 100; i++) {
    document.write("" + i + "<br />");
    window.scroll(0,document.body.offsetHeight);
}

答案 3 :(得分:3)

漂亮的jQuery函数完成了这项工作

$('html,body').animate({ scrollTop: element.offset().top }, 'slow');

这对我有用,用它来自动滚动到下拉菜单以使其成为焦点

答案 4 :(得分:1)

这解释了什么时间间隔 - http://www.w3schools.com/jsref/met_win_setinterval.asp

这解释了什么时间设置 - http://www.w3schools.com/jsref/met_win_settimeout.asp

这将使用javascript滚动页面,并在6秒后停止

    <script type = "text/javascript" >

    var x;
    function autoscroll(){
    self.scrollBy(0,x)
    }

    function playautoscroll(){
    x = 1;
    setInterval('autoscroll()',0.01);
    stop();}

    function onetozero(){
    x=0;
    }

    function stop(){
    setTimeout ("onetozero()",6000);
    }
    window.onload=playautoscroll

    </script>

答案 5 :(得分:0)

obj.scrollTop = obj.scrollHeight;