2017-06-07 52 views
0

我的目标是有一个滚动股利我的主要内容。该内容的顶部是我的目录,链接到滚动Div中的其他材料。我发现了一些自动化ToC的代码,但是我不能在我尝试导航时只想让滚动的Div移动。最终,我打算让ToC导航到常见问题解答问题并添加一个稍后出现的按钮,以使用户回到顶端。每当我尝试导航到一个链接,整个页面移动,而不是在滚动DIV材料

是否有技术或教程的地方,让我做我想做的事?

$(document).ready(function() { 
 
    $("#toc").append('<br>') 
 
    $("h3").each(function(i) { 
 
    var current = $(this); 
 
    current.attr("id", "title" + i); 
 

 
    $("#toc").append("<p><a id='link" + i + "' href='#title" + i + "' title='" + current.attr("tagName") + "'>" + current.html() + "</a></p>"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="contentarea"> 
 
    <div class="title" id="newstitle"> 
 
    <h1>Frequently Asked Questions</h1> 
 
    </div> 
 
    <div id="toc"></div> 
 
    <div class="article" id="content"> 
 
    <h3>How does sponsorship work at this event?</h3> 
 
    <p>Sponsorship is available to businesses who wish to contribute to the success of the event. If you or your business wish to become a sponsor for HonorCon 2017, please contact the convention chair committee at <a target="_blank" href="mailto:[email protected]">[email protected]</a>. 
 
     Our sponsors receive the most benefit from their donations, as only sponsors are advertised on our website as compared to the space for sale in our program. There are 3 levels of sponsorship available:</p> 
 
    <br> 
 
    <br> 
 
    <h3>What are the convention space rules?/Do you have a harrassment policy?</h3> 
 
    <p>The staff of HonorCon wishes to ensure a safe and comfortable environment for all attendees. We encourage you to come to have a good time and to be whomever you wish to be. We believe that conventions should be safe spaces to enjoy and explore science 
 
     fiction, cosplay, and gaming. If at any time you feel that your safety or the safety of others is in jeopardy, please contact Convention Security immediately (Shore Patrol), who will then contact the Police and Hotel Security as required. To that 
 
     end, however, certain forms of behavior have been deemed inappropriate by the convention committee.</p> 
 
    <br> 
 
    <br> 
 
    <h3>Who are those guys in the yellow berets and brassards?</h3> 
 
    <p>Both HonorCon and MantiCon are put on by the Royal Manticoran Navy: the Official Honor Harrington Association. Because the setting in the Honor Harrington series is primarily based on a futuristic space navy, it stands to reason that our convention's 
 
     security and all-around help-force would be called "Shore Patrol" in honor of the naval military police's peace-keeping function when ships come into port. HonorCon's Shore Patrol performs security functions for the convention in cooperation with 
 
     the venue's management and should be the go-to people should you have any concerns or feel in need of help of any kind.If at ay time you feel that your safety or the safety of others is in jeopardy, please contact Shore Patrol emmediately.</p> 
 
    <br> 
 
    <br> 
 
    <h3>Where is the event?</h3> 
 
    <div> 
 
     <p>HonorCon 2017 will be held in the luxurious Hilton North Raleigh/Midtown. The address is:</p> 
 
     <br> 
 
     <p>3415 Wake Forest Road</p> 
 
     <p>Raleigh, North Carolina 27609-7330</p> 
 
     <p>USA</p> 
 
     <p>Telephone: 1(919)872-2323</p> 
 
     <p>Fax: 1(919)876-0890</p> 
 
    </div> 
 
    <br> 
 
    <br> 
 
    <h3>My question isn't here, who do I contact for an answer?</h3> 
 
    <p>If we've overlooked something that you are dying to know or an explanation is unclear, you have three possible courses of action. The first is to go to the "<a target="_self" href="contact.html">Contact Us!</a>" page of this website and click on the 
 
     picture of the person whose department best fits the category of your question. This will help set up and address an e-mail to the person most likely to be able to answer your question on the staff. If you are unable to find an appropriate representative 
 
     who seems like they can meet your needs send an e-mail to <a target="_blank" href="mailto:[email protected]">[email protected]</a>. And finally, if time is of the essence, feel free to message us on Facebook using Facebook messenger. Click 
 
     <a 
 
     target="_self" href="https://www.facebook.com/HonorCon/">here</a> to go to our Facebook page!</p> 
 
    </div>

感谢您的时间!

+0

那么是什么问题?你有什么错误,你有什么尝试?我还建议你只展示相关的源代码,而不是将其倾倒到你的问题中,期望人们阅读并找到与你的问题相关的部分。 – NewToJS

+0

问题是,我有可能根据其设计工作。我无法让目录只在滚动框内滚动。当我尝试导航时,它会移动整个页面,使其看起来很糟糕。我找不到解决问题的技术。 –

+0

根据第一条评论修改帖子。 JS脚本完成它应该做的事情。它本身没有故障。我只是不知道如何修改它以符合我的要求。 –

回答

0

我相信你的意思是,当用户点击一个链接时,页面滚动应,而不是跳转到相关段落。

下面是该解决方案:

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

参考文章:https://css-tricks.com/snippets/jquery/smooth-scrolling/

相关问题