如何在不滚动主屏幕的情况下跳转到滚动元素的某个位置?

时间:2013-06-14 10:30:04

标签: javascript html url scroll

我在页面上有一个容器(div)。此容器具有滚动(由overflow:auto; height:400px提供) 我不需要提供一个URL,它将打开一个页面,这样主页面就不会滚动,但容器中的文本将被滚动。
我尝试了www.mysite.com#position,但通过这种方式,主页面也滚动了(我需要,用户会看到屏幕顶部的标题,以及" #position&#34 ;位于容器顶部的位置)

3 个答案:

答案 0 :(得分:2)

使用javascript可以实现这一点。我将在这里展示一个jQuery示例。

if (window.location.hash == '#position') {
    $('#containerDiv').animate({
     scrollTop: $("#actual_position").offset().top
 }, 2000);
}

actual_position应该是滚动到的地方。 position应该只是在网址中,而不是在页面上,以防止整个页面滚动。

答案 1 :(得分:0)

你可以使用css-properties:position:fixed,top:...,left:...当你的用户滚动时,你的元素应该留在你身边的某个地方。 此外,您可以将您不想滚动的所有内容放入div中并定义css-properties。

我希望这对你有所帮助。

答案 2 :(得分:0)

真的是Arjan答案的升级(现在这确实有效) 由于Arjan的建议,该脚本不会每次都有效,但只能在url(#scroll)的末尾提供www.mysite.com#scroll。此脚本将容器滚动条滚动到#position元素,并保留所有文档。

    jQuery(window).load(function(){
    container_top = jQuery('#container').offset().top;
    element_top = jQuery('#position').offset().top;
    element_relative_top = element_top -container_top;

    if (window.location.hash == '#scroll') {
        jQuery('#container').animate({
            scrollTop: element_relative_top
        }, 2000);
    }
})