2016-01-05 67 views
1

我知道這已被問了好幾次,但我無法弄清楚如何更改網址或呈現新的html,並使其看起來好像你永遠不會離開網站。如何無縫更改網站的網址

我想要做的正是這個網站做什麼:

http://uncharted.sunbrella.com/

是否加載所有的內容,只是通過JavaScript改變可見的對象?他們使用角度狀態嗎?我無法弄清楚如何獲得網站各部分之間無縫過渡的效果。

+2

請參閱['History.pushState'](https://developer.mozilla.org/en-US/docs/Web/API/History/pushState)。 – Sampson

+1

它被稱爲'歷史API'。關於它的詳盡文章[這裏](https://css-tricks.com/using-the-html5-history-api/)。它不適用於不支持「HTML5」的瀏覽器版本。 –

回答

3

根據他們的頁面源代碼,它看起來並不像他們使用的角度,但你當然可以使用它。如果你這樣做,我會建議使用UI路由器與頁面上的多個視圖。

動態加載html的祕密是通過使用ajax來通過JavaScript來動態請求數據並更新dom。

您引用的網站使用了css以使頁面響應並阻止您滾動,直到您單擊鏈接。點擊它後,看起來像在視圖端口之外加載的內容,所以在滾動之前您不會看到數據加載。

長話短說,指向你在正確的方向,我會勸你更多地瞭解AJAX裝載和CSS DOM操作。如果您熟悉Angular,請使用結帳ui router,因爲它可以讓您輕鬆設置頁面上的多個視圖。

+0

謝謝@Wiggitamoo。很好的答案。 – caroso1222

+0

雖然它仍然是最流行和最常用的異步XHR,但它並不是唯一的,並且不應該使用**來代替aXHR **。除了'http'和'https'之外,還可以異步地生成'JSON','XML','純文本'或'blob'請求。通常,現代JavaScript庫/ API使用'JSON'來支持'ajax',因爲它更乾淨更快。 –