用于滚动到网页底部的小书签

时间:2010-06-06 21:57:49

标签: javascript bookmarklet

我想知道是否可以创建一个书签来点击,当前网页滚动到底部!

javascript:function%20scrollme(){dh=document.body.scrollHeight;ch=document.body.clientHeight;if(dh>ch){moveme=dh-ch;window.scrollTo(0,moveme);}}

如果我创建一个新书签并将其粘贴为地址没有任何反应。我实际上不知道如何在书签中运行javascript,但是我只是为css-tricks添加了书签Printliminator

也许你可以提供帮助,我很想拥有这样的书签!

3 个答案:

答案 0 :(得分:2)

首先,您的JavaScript只定义了一个函数而不执行任何其他操作。

其次,您需要使用document.documentElement(代表<html>元素)而不是document.body

javascript:dh=document.documentElement.scrollHeight;ch=document.documentElement.clientHeight;if(dh>ch){moveme=dh-ch;window.scrollTo(0,moveme);}

或简单地

javascript:window.scrollTo(0,document.documentElement.scrollHeight)

(显然,如果window.scrollToy-coord大于最大排名,则无关紧要。

更新:如果你必须在怪癖模式下处理IE,根元素确实是document.body。其他浏览器让document.documentElement.clientHeight表示文档的高度(请参阅Finding the size of the browser window,它处理窗口的高度,但包含一个很好的表)。无论如何,您想要将滚动条的位置设置为三者中最大的位置:

javascript:window.scrollTo(0,Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight))

答案 1 :(得分:1)

这是一个平滑向下滚动到页面底部的函数:

function scroll(scroll_to) {
if (scroll.timer) clearTimeout(scroll.timer);
var scroll_current = document.body.scrollTop,
    distance = Math.abs(scroll_current - scroll_to);
if (scroll_current == scroll_to) return;
if (scroll_current > scroll_to) {
    if (distance < 5) {
        scroll_current -= distance;
    } else {
        scroll_current -= Math.ceil(distance / 10);
    }
}
if (scroll_current < scroll_to) {
    if (distance < 5) {
        scroll_current += distance;
    } else {
        scroll_current += Math.ceil(distance / 10);
    }
}
document.body.scrollTop = scroll_current;
scroll.timer = setTimeout(function() {
    scroll(scroll_to)
    }, 10);
}

如果你打电话:

scroll(document.body.scrollHeight - innerHeight);

它将滚动到页面底部。 您也可以使用它滚动到页面顶部,如下所示:

scroll(0);

只需将其附加到按钮或链接的onclick事件。

答案 2 :(得分:-1)

您只需使用具有此语法的锚

即可
<a name="label">Any content</a> 
and
<a href="#label">Any content</a>