我想要做的是在我展开页面中的元素时向下滚动窗口。
我想要达到的效果就像 Stack Overflow 的评论。如果它扩展到页面之外,它会向下滚动以适应窗口中的所有评论。
这样做的最佳方法是什么?
编辑:我正在使用 JQuery。
我想要做的是在我展开页面中的元素时向下滚动窗口。
我想要达到的效果就像 Stack Overflow 的评论。如果它扩展到页面之外,它会向下滚动以适应窗口中的所有评论。
这样做的最佳方法是什么?
编辑:我正在使用 JQuery。
这个 jQuery 插件对我很有效:http: //demos.flesler.com/jquery/scrollTo/
如果你有使用 Prototype 的优势,你可以使用$(element).scrollTo()
.
否则,一般的想法是计算元素的累积偏移量,然后相应地设置window.scrollTop
(and window.scrollLeft
)。
您可以使用Scriptaculous (建立在Prototype之上)很好地做到这一点:
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,但您已经说过您正在使用它。