滚动浏览器窗口以扩展元素的最佳方法是什么?
-
05-07-2019 - |
题
当我在页面中展开元素时,我想要做的是向下滚动窗口。
我想要实现的效果就像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,但你已经说过你使用它了。
不隶属于 StackOverflow