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

Javascript 如何在不滚动主屏幕的情况下跳转到滚动元素的特定位置?,javascript,html,url,scroll,Javascript,Html,Url,Scroll,我在页面上有一个容器(div)。此容器有一个滚动条(由溢出:自动;高度:400px提供)。 我不需要提供URL,它将打开一个页面,这样主页就不会被滚动,但容器中的文本将被滚动。 我尝试了www.mysite.com#position,但通过这种方式,主页也会滚动(我需要,用户将看到屏幕顶部的标题,以及容器顶部的“#position”位置)这在javascript中是可能的。这里我将展示一个jQuery示例 if (window.location.hash == '#position') {

我在页面上有一个容器(
div
)。此容器有一个滚动条(由
溢出:自动;高度:400px
提供)。
我不需要提供URL,它将打开一个页面,这样主页就不会被滚动,但容器中的文本将被滚动。

我尝试了
www.mysite.com#position
,但通过这种方式,主页也会滚动(我需要,用户将看到屏幕顶部的标题,以及容器顶部的“
#position
”位置)

这在javascript中是可能的。这里我将展示一个jQuery示例

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

实际位置应该是滚动到的位置
position
应该只在url中,而不在页面上,以防止整个页面滚动。

您可以使用css属性:position:fixed,top:…,left:。。。对于您的元素,当用户滚动时,它应该停留在您这边的某个位置。 此外,您可以将所有不希望滚动的内容放入div中,并定义css属性


我希望这能帮你一点忙。

这真的是答案的升级(现在它真的起作用了)。
根据Arjan的建议,脚本不会每次都起作用,只能通过在url的末尾提供
#scroll
www.mysite.com#scroll
)来实现。此脚本将容器滚动条滚动到
#位置
元素,所有文档将保留

    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);
    }
})

您可以使标题固定。那将是最简单的方法。谢谢。。。但这不是我的解决办法。除了标题(侧边栏等)之外,我还有一些其他元素,我必须以这种方式使
固定
bu,这不合适……路径名无法检索锚,我的坏消息。我将更新我的答案。我尝试了一下,但我有一个问题:它滚动容器,使
#实际位置
位于主屏幕的顶部,这意味着-它位于容器的不可见区域。(window.location.hash=='#position'很好,谢谢)您可以使用偏移量进行一些调整,直到正确为止<代码>滚动顶端:($(“#实际#u位置”).offset().top-10
滚动顶端:$(“#实际#u位置”).offset().top+10
。只需不断更改数字,直到到达您想要的位置。offset()计算相对于文档的位置。我们需要相对于容器的位置。我会努力做到这一点,并将张贴在这里。