2013-06-27 152 views
1

我知道有一堆關於構建jQuery滾動的鏈接和提示,我讓他們在JS Fiddle中工作,但由於某些原因,在Visual Studio中使用它時不起作用。我有jQuery的V1.7.2一個單獨的文件(我從網站上下載),叫的script.js的JavaScript文件具有此代碼在它上點擊滾動:jQuery滾動不起作用

$('a').click(function() { 
    $('html, body').animate({ 
     scrollTop: $($(this).attr('href')).offset().top 
    }, 3000); 
    return false; 
}); 

我有一個固定的導航即當你點擊鏈接時,頁面會在導航後面滾動。實際的鏈接工作,因爲我使用錨標籤,但它並沒有緩解和緩解。當你在jsfiddle http://jsfiddle.net/9SDLw/中使用類似的東西時,它可以工作,但是當我嘗試在我的代碼中使用它時,它不會。這裏是我的代碼:

 <div class="navigation"> 
     <ul id="navmenu"> 
      <li id="mainlogo"></li> 
     </ul> 
     <div class="mainnav"> 
       <ul id="actualnav"> 
        <li> 
         <a href="#topbar" rel="">Home &nbsp;&nbsp;&nbsp;&nbsp;</a> 
        </li> 
        <li> 
         <a href="#aboutushome" rel="">About Us &nbsp;&nbsp;&nbsp;&nbsp;</a> 
        </li> 
        <li> 
         <a href="#productshome" rel="">Products</a> 
        </li> 
        <li> 
         <span class="resumatics">powered by resumatics</span> 
        </li> 
       </ul> 
     </div> 
    </div> 

我有2個ID的,到目前爲止,當你點擊「主頁」鏈接它去的地方,我放在這行代碼爲錨頁面的頂部:

<div class="topbar" id="topbar"></div> 

然後,大約另一個頁面下,我把另一個錨第二連桿,在「關於我們」的鏈接在這裏:

 <div class="middlebar1" id="aboutushome"></div> 

所以鏈接做的工作在頁面變成直接從一個點到另一個點,但緩和下來e頁和頁面不起作用,它只是一個簡單的鏡頭。我在這裏錯過了什麼?

+0

@ GabyakaG.Petrioli你,我總是忘了有關 –

回答

1

首先確保你ahave實際包含在你測試的網頁文件(jQuery和自己的腳本)..

然後調用你的代碼後,DOM就緒(否則代碼會找不到附加處理程序的鏈接,因爲它並沒有被從文件中讀取...

所以

$(function(){ //this is the way to run your code at the DOM Ready event 

    $('a').click(function() { 
     $('html, body').animate({ 
      scrollTop: $($(this).attr('href')).offset().top 
     }, 3000); 
     return false; 
    }); 

}); 
+0

那麼做到了,但我仍然不明白它如何在沒有$(function(){} start的jsfiddle中工作?謝謝btw! – colasus

+0

@colasus,如果你看jsfiddle的左側面板,在*** Frameworks&Extensions ***下,第二個'select'框指定何時執行你的代碼。默認情況下,它被設置爲'onLoad',這是在DOM準備好之後,因此頁面(*偶數圖像*)在運行腳本之前已經加載。如果將它設置爲***無包裝,則在頭部***不起作用。 –

+0

好,非常感謝! – colasus