2010-06-06 90 views
2

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

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

也许你可以帮忙,我很想拥有一个这样的书签!

回答

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) 

(显然也没关系y-coordwindow.scrollTo如果大于最大位置)。

更新:万一你必须在怪癖模式下处理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)) 
+0

真棒谢谢你 – matt 2010-06-07 05:11:58

-1

,你可以简单地使用锚与此语法

<a name="label">Any content</a> 
and 
<a href="#label">Any content</a> 
+0

我很确定这不是原始海报的要求。他想要一个可以跳到任何页面主体的小书签。 – 2010-06-06 22:05:40

+0

我认为OP是要求JS解决方案,如果它将被用作书签;他将无法控制网页。 – 2010-06-06 22:06:16

+1

对,我想要一个书签,这样我就可以跳到每个网页的底部了!我不能在我访问的网站中放置锚点。我只想点击一个小书签并跳转到页面底部。 – matt 2010-06-06 22:43:41

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事件。