2014-09-30 70 views
1

我有一個包含大量文本的頁面,並決定使用固定的導航欄,以便在各個節之間跳轉。它工作得很好,但不是讓頁面在div之間跳轉,而是想讓它在上下滾動。divs之間的平滑滾動

這是我到目前爲止;

<ul> 
    <li><a href="#2010">2010</a></li> 
    <li><a href="#2009">2009</a></li> 
    <li><a href="#2008">2008</a></li> 
    <li><a href="#2007">2007</a></li> 
    <li><a href="#2006">2006</a></li> 
    <li><a href="#2005">2005</a></li> 
    <li><a href="#2003">2003</a></li> 
    <li><a href="#1999">1999</a></li> 
<ul> 

    <div id="2010"></div> 
    <div id="2009"></div> 
    <div id="2008"></div>`` 
    <div id="2007"></div> 
    <div id="2006"></div> 
    <div id="2005"></div> 
    <div id="2003"></div> 
    <div id="1999"></div> 

此外,它有可能有李元素指向div顯示是另一種顏色比其他李元素?

+0

我已經用更漂亮的HTML內容更新了我的答案。 http://stackoverflow.com/a/26126679/947687 – dizel3d 2014-09-30 17:36:24

回答

0

好吧,拿它! http://jsfiddle.net/a126cwb3/11/

// handle links with @href started with '#' only 
$(document).on('click', 'a[href^="#"]', function(e) { 
    // target element id 
    var id = $(this).attr('href'); 

    // target element 
    var $id = $(id); 
    if ($id.size() === 0) { 
     return; 
    } 

    // prevent standard hash navigation (avoid blinking in IE) 
    e.preventDefault(); 

    // top position relative to the document 
    var pos = $(id).offset().top; 

    // animated top scrolling 
    $('body, html').animate({scrollTop: pos}); 
}); 
+0

不起作用:( – mrbandi 2014-09-30 20:02:57

+0

@mrbandi,它適用於我在Chrome瀏覽器。你使用什麼瀏覽器? – dizel3d 2014-09-30 20:03:48

+0

@mrbandi,好的,我明白了。我已經更新了我的答案對於IE來說:用'$('body,html')替換'$('body')'。 – dizel3d 2014-09-30 20:13:01