2013-03-28 92 views
-2

我想要做的非常相似,這個網站的內容:http://feed-the-beast.com/如何用css/javascript顯示活動頁面/選項卡?

在哪裏,當你點擊導航鏈接,頁面將向下滑動到相應的ID,和「活躍」的導航鍵以某種方式突出顯示。我怎樣才能做到這一點?我也想爲多個頁面執行此操作,因爲我還將爲論壇另設一個頁面。

編輯:我怎樣才能完成向下滑動頁面?

+0

右鍵單擊該頁面查看源代碼。它似乎是一個簡單的Javascript和HTML。沒什麼神奇的 – hop

+0

看看源代碼,用javascript完成它 – DavidB

+0

我意識到它純JS的聲音我只是不熟悉JS,但有一點解釋,我可以很容易地找到它。我只想自己編輯它,而不僅僅是複製/粘貼該網站(也是版權) –

回答

2

在這裏看到演示:http://jsfiddle.net/4sGmG/1/

HTML:

<nav> 
    <a href="#one">One</a> 
    <a href="#two">Two</a> 
    <a href="#three">Three</a> 
    <a href="#four">Four</a> 
    <a href="#five">Five</a> 
</nav> 

<div id="one">One</div> 
<div id="two">Two</div> 
<div id="three">Three</div> 
<div id="four">Four</div> 
<div id="five">Five</div> 

的jQuery:

$('nav a').on('click', function() { 
    var activeDiv = $(this).attr('href'); 

    //setActiveMenuItem($(this)); 

    $('html, body').animate({ 
     scrollTop: $(activeDiv).offset().top 
    }, 2000);   
}); 

$(window).on('scroll', function(e) { 
    var bodyTop = $(document).scrollTop(); 

    $('div').each(function() { 
     var offset = $(this).offset().top - $(window).scrollTop(); 

     if (offset >= 0) { 
      setActiveMenuItem($(this).attr('id')); 

      return false; 
     } 
    }); 
}); 

function setActiveMenuItem(id) { 
    $('a[href=#' + id + ']').addClass('active'); 
    $('a[href=#' + id + ']').siblings().removeClass('active'); 
} 
+0

我對JS不是很熟悉。 siblings()和animate()函數做了什麼?這也包括只是手動向下滾動頁面,就像它在OP的網站上一樣? –

+0

'兄弟姐妹()'選擇與選定元素相同級別上的所有元素。 'animate()'動畫改變樣式,在這種情況下,它向下滾動頁面。不,它不包含手動滾動,但您也可以使用jQuery/JavaScript來做到這一點。 –

+0

@Xzar我更新了我的答案並添加了一個工作演示。你能接受答案嗎? –

0

基本錨導航,使用JavaScript(jQuery的)軟化,會做的伎倆。熟悉Firebug或Chrome的開發者工具,看看該網站是如何完成的。

Twitter Bootstrap提供了ScrollSpy,這也是一種有用的位置檢測機制。 http://twitter.github.com/bootstrap/javascript.html#scrollspy

+0

太好了,謝謝。我會看看這個。 –

相關問題