2012-02-01 206 views

回答

3

使用javascript & DOM來調用此技術以更改fadeIn()和[fadeOut()] [2]動畫(用於jQuery)的頁面內容。

對於頁面位置的變化:

你必須使用HTML5's pushState() method改變瀏覽器歷史記錄。

window.history.pushState(data, "Title", "/new-url"); 

文件表示:

pushState的()有三個參數:一個狀態對象,一個標題(這是目前 忽略),和(任選地)一個URL。

最後一個參數是新的URL。出於安全原因,您只能更改URL的路徑,而不是域本身。第二個參數是對新狀態的描述。第一個參數是您可能想要與狀態一起存儲的一些數據。

+0

這並不能解釋URL更改。 – millimoose 2012-02-01 01:54:05

+0

HTML5的pushState()方法可以做到這一點。哦,可能是你在我更新時發表評論.. – 2012-02-01 01:55:45

+0

似乎是這樣,對不起。 – millimoose 2012-02-01 01:57:09

2

違規代碼:

historyAPISupported : function(){ 
    return (typeof window.history.pushState !== 'undefined') 
}, 

clickTab : function(tab){ 
    var humanTab = tab.replace('js-', '') 
    var newUrl = document.location.pathname.replace(/\/(how.*)/, '/how/' + humanTab) 
    this.activateTab(tab) 
    if (this.historyAPISupported()){ 
    window.history.pushState({ path: newUrl }, null, newUrl) 
    }else{ 
    if (document.location.pathname != newUrl){ 
     document.location.href = document.location.href.replace(/\/(how.*)/, '/how/' + humanTab) 
    } 
    } 
}, 

盡我所能告訴它仍然使用了錨,但需要在瀏覽器歷史記錄的優勢進行更改(您可以快速查看您的「進度」欄顯示的位置的散列,但瀏覽器URL更改)。

除了所有這些,內容從一開始就被加載,內容只是淡入和淡出。

關於實際問題,我不認爲它有一個特定的名稱。 AJAX在幕後加載內容,轉換使視覺效果,以及一些狡猾的JS使鏈接看起來改變。

+0

鏈接確實發生了變化,而不僅僅是外觀。即使許多內容已預先加載,頁面也會加載。您可以通過點擊圖標來確定每個菜單項上重新加載的頁面。 – 2012-02-01 02:00:21

+0

@Travis:必須是你的瀏覽器,因爲我看到所有加載在與標籤相關的各種'/ html/body/section/div/article/aside'元素下的內容,然後設計/動畫顯示/隱藏。 – 2012-02-01 02:03:21

+0

我正在使用谷歌瀏覽器。但是,經過進一步的檢查,似乎瀏覽器只是被欺騙,看起來像重新加載,因爲當我跟蹤網絡活動時,很顯然,當單擊每個鏈接時頁面實際上不會重新加載所有資源(集合連接等)。總之,我必須同意轉換是通過代碼完成的,而不是通過重新加載。 – 2012-02-01 21:51:37

2

很可能使用pushState() API將瀏覽器URL更改爲「假」導航。新內容可以通過AJAX預加載或獲取。