2014-07-16 39 views
0

我最近問了一個問題,並在處理它後像... 5小時(不幸的是嚴重)我能夠順利滾動到錨點。這裏是我投入的js。jquery平滑滾動只能在內部工作

$(document).ready(function(e) { 
$(".scroll").click(function(event){ 
    event.preventDefault(); 
    //calculate destination place 
    var dest=0; 
    if($(this.hash).offset().top > $(document).height()-$(window).height()){ 
      dest=$(document).height()-$(window).height(); 
    }else{ 
      dest=$(this.hash).offset().top; 
    } 
    //go to destination 
    $('html,body').animate({scrollTop:dest}, 1000,'swing'); 
}); 
}); 

我目前使用ID作爲錨點,但如果需要,我也可以切換到NAME。

這是我想要的:這隻能在同一頁面內工作。我希望它可以在多個頁面上工作。

這裏是我的例子:This page,應該加載this page然後滾動到錨點。

但相反,它跳。我應該添加到這個代碼?作爲一個圖形和HTML/CSS的設計師,JavaScript對我來說是火箭科學。所以,如果你保持愚蠢,我會很感激。

回答

1

棒到JS,並傳遞一個散列屬性:

<a href="http://something.com/some.php#start"> Go to page 2 (Start) </a> 
<a href="http://something.com/some.php#goats"> Go to page 2 (Goats) </a> 

,並用一個簡單的JS檢查第2頁

<script> 
    $(document).one("ready",function(){ 
     if(window.location.hash.length > 0){ 
      $("body, html").animate({scrollTop:$(window.location.hash).position().top},1000); 
     } 
    }); 
</script> 

該腳本將導致對象ID爲「啓動」(或有ID「山羊」) 您可以在頁面2上定義目標addig一個ID給您的分區:

<div id="start"> Some content </div> 
<div id="goats"> Goat content </div> 
+0

問題是,如果你將它建成一個100英尺高的雕像並將它推高到我的身上,我就不會知道PHP了......你知道的。是不是隻有一個HTML解決方案? – SunBro

+0

我剛剛更新了一個JS解決方案,如果你更喜歡這個:) –

+0

第二個解決方案看起來太好了(閱讀:簡單)爲真。我是否用這個替換了第一頁上的js代碼,或者將其添加到已經存在的js代碼中?如果是後者,我在哪裏添加它?我知道這很煩人,但javascript讓我難以置信。 – SunBro