滚动浏览器窗口以扩展元素的最佳方法是什么?

时间:2008-10-29 04:10:49

标签: javascript window scroll

当我在页面中展开元素时,我想要做的是向下滚动窗口。

我想要实现的效果就像Stack Overflow评论一样。如果它扩展到页面之外,它会向下滚动以适合窗口中的所有注释。

这样做的最佳方式是什么?

编辑:我正在使用JQuery。

5 个答案:

答案 0 :(得分:1)

这个jQuery插件对我很有用: http://demos.flesler.com/jquery/scrollTo/

答案 1 :(得分:0)

如果您有使用Prototype的优势,可以使用$(element).scrollTo()

否则,一般的想法是计算元素的累积偏移量,然后相应地设置window.scrollTop(和window.scrollLeft)。

答案 2 :(得分:0)

您可以使用Scriptaculous(建立在Prototype之上)很好地完成此任务:

new Effect.ScrollTo('someDiv',{...some parameters...})

它比单独的Prototype(延迟开始前,延迟时间和回调事件(例如afterFinish))提供更精细的控制,允许您触发其他效果或任何你选择的效果。你可以使它平滑滚动,所以页面没有突然跳了起来。

答案 3 :(得分:0)

如果您知道源中的下一个元素是什么,您实际上可以跳转到该元素(location.href =“#...”)。这将使用浏览器的本机“滚动”而不使用任何库。

答案 4 :(得分:0)

你可以使用这个代码,但是不是很完美。 根据blonkm的建议

function scrollTo( Selector ){
  $(Selector).before("<a name='scroll' id='scroll'></a>");
  document.location.hash = 'scroll';
  $('scroll').remove();
}

这应该有效。 需要jQuery,但你已经说过你使用它了。