2012-02-01 127 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预加载或获取。