当我在页面中展开元素时,我想要做的是向下滚动窗口。
我想要实现的效果就像Stack Overflow评论一样。如果它扩展到页面之外,它会向下滚动以适合窗口中的所有注释。
这样做的最佳方式是什么?
编辑:我正在使用JQuery。
答案 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,但你已经说过你使用它了。