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

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

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

编辑:我正在使用JQuery。

有帮助吗?

解决方案

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

其他提示

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

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

您可以使用 Scriptaculous (建立在原型):

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

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top