Javascript 每当我尝试导航到链接时,整个页面都会移动,而不是滚动div中的内容

Javascript 每当我尝试导航到链接时,整个页面都会移动,而不是滚动div中的内容,javascript,html,css,Javascript,Html,Css,我的目标是用我的主要内容创建一个滚动Div。在该内容的顶部是我的目录,该目录链接到滚动分区中的其他材料。我发现了一些自动执行ToC的代码,但是我一辈子都不知道如何在尝试导航时仅使滚动分区移动。最后,我打算让ToC导航到FAQ问题,并添加一个按钮,稍后将显示该按钮,以使用户返回顶部 有没有什么技术或教程可以让我做我想做的事情 $(文档).ready(函数(){ $(“#toc”)。追加(“”) $(“h3”)。每个(功能(i){ var current=$(此); 当前属性(“id”、“标题”+

我的目标是用我的主要内容创建一个滚动Div。在该内容的顶部是我的目录,该目录链接到滚动分区中的其他材料。我发现了一些自动执行ToC的代码,但是我一辈子都不知道如何在尝试导航时仅使滚动分区移动。最后,我打算让ToC导航到FAQ问题,并添加一个按钮,稍后将显示该按钮,以使用户返回顶部

有没有什么技术或教程可以让我做我想做的事情

$(文档).ready(函数(){
$(“#toc”)。追加(“
”) $(“h3”)。每个(功能(i){ var current=$(此); 当前属性(“id”、“标题”+i); $(“#toc”)。追加(“”); }); });

常见问题
赞助如何在本次活动中发挥作用?
希望为活动的成功做出贡献的企业可获得赞助。如果您或您的企业希望成为2017年HonorCon大会的赞助商,请联系大会主席委员会。
我们的赞助者从他们的捐赠中获得最大的利益,因为与我们计划中的销售空间相比,只有赞助者在我们的网站上做广告。有3个级别的赞助可供选择:



什么是约定空间规则?/您有Harrasment政策吗? HonorCon的工作人员希望为所有与会者提供一个安全舒适的环境。我们鼓励你来这里玩得开心,做你想成为的人。我们相信公约应该是享受和探索科学的安全空间 小说、角色扮演和游戏。如果您在任何时候感到您或他人的安全受到威胁,请立即联系公约保安(海岸巡逻),他们将根据需要联系警察和酒店保安。到那 然而,公约委员会认为某些形式的行为是不适当的



那些戴黄色贝雷帽和胸罩的家伙是谁? HonorCon和MantiCon都由皇家Manticoran海军(官方的Honor Harrington协会)穿上。因为《荣誉哈灵顿》系列的背景主要是基于未来派太空海军,所以我们的大会 当船只进港时,为了纪念海军宪兵的维持和平职能,安全和全面援助部队将被称为“海岸巡逻队”。HonorCon的海岸巡逻队与 如果您有任何顾虑或需要任何形式的帮助,场馆的管理层和工作人员都应负责。如果您感到您或他人的安全受到威胁,请紧急联系海岸巡逻队



活动在哪里? 2017年荣誉大会将在豪华的希尔顿北罗利/中城酒店举行。地址是:


威克森林路3415号

北卡罗来纳州罗利27609-7330

美国

电话:1(919)872-2323

传真:1(919)876-0890



我的问题不在这里,我应该联系谁寻求答案? 如果我们忽略了你渴望知道的事情,或者解释不清楚,你有三种可能的行动方案。第一个是转到本网站的“”页并单击 其部门最适合您问题类别的人员的照片。这将有助于设置电子邮件地址,并发送给最有可能在员工中回答您问题的人。如果您无法找到合适的代表 他们似乎能满足你的需要,请给我发一封电子邮件。最后,如果时间至关重要,请随时使用Facebook messenger在Facebook上给我们留言。点击 转到我们的Facebook页面


我相信您的意思是,当用户单击链接时,页面应该滚动,而不是跳转到相关段落

以下是解决方案:

// Select all links with hashes
$('a[href*="#"]')
  // Remove links that don't actually link to anything
  .not('[href="#"]')
  .not('[href="#0"]')
  .click(function(event) {
    // On-page links
    if (
      location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') 
      && 
      location.hostname == this.hostname
    ) {
      // Figure out element to scroll to
      var target = $(this.hash);
      target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
      // Does a scroll target exist?
      if (target.length) {
        // Only prevent default if animation is actually gonna happen
        event.preventDefault();
        $('html, body').animate({
          scrollTop: target.offset().top
        }, 1000, function() {
          // Callback after animation
          // Must change focus!
          var $target = $(target);
          $target.focus();
          if ($target.is(":focus")) { // Checking if the target was focused
            return false;
          } else {
            $target.attr('tabindex','-1'); // Adding tabindex for elements not focusable
            $target.focus(); // Set focus again
          };
        });
      }
    }
  });

参考文章:

那么问题出在哪里?你犯了什么错误?你试过什么?我还建议你只显示相关的来源,而不是仅仅将其放入你的问题中,期望人们通读以找到与你的问题相关的部分。问题是我所拥有的可能是按照其设计工作的。我无法使目录仅在滚动框中滚动。当我尝试导航时,它会移动整个页面,这使它看起来很可怕。我找不到一种技术可以解决这个问题。根据第一条评论编辑了这篇文章。JS脚本执行它应该执行的操作。它本身并没有故障。我只是不知道如何修改它以满足我的要求。你有这个页面的CSS吗?你需要添加CSS并更具体地说明“在滚动框内”的意思,滚动框在哪里?