我不知道是否有可能以任何方式实现,我想要做什么。 我有一些部分单页网站。事情是这样的:手动添加浏览器历史记录条目(跨浏览器)
<div class="page pageOne"></div>
<div class="page pageTwo"></div>
<div class="page pageThree"></div>
<div class="page pageFour"></div>
当你打开该网站,2,3和第4页有display:none
,第一个display:block
。当我点击我的导航链接,当前的“页”淡出和你点击任何链接,则属于部分消失中的链接是这样的:
<a class="pageChange" href=".pageFour">Four</a>
而这里的jQuery代码:
$(".pageChange").click(function(e){
e.preventDefault();
var href = $(this).attr("href");
$(".page").fadeOut(200);
setTimeout(function(){
$(href).fadeIn();
}, 200);
});
什么是很明显的是,当我点击浏览器后退按钮,也不会掉色在前面的章节。它只是将返回到以前的网站我已经打开。
所以我的问题是:有没有办法在浏览器中添加一个历史记录,当点击一个链接?所以我可以按下后退按钮,它会淡入前一部分?
要点击一个链接之前获得的可见部分,我已经做到了这一点:
var currentPage = $(".page:visible").attr('class').split(' ')[1];
但不幸的是这是没有用的,我想要实现的。
我会很开心的不得了,如果有人能提供给我的,我怎么能处理这一些帮助(如果它甚至有可能)
当然可以,使用pushState:https://developer.mozilla.org/en/docs/Web/API/History_API#Adding_and_modifying_history_entries –
@RoryMcCrossan感谢您的快速响应。所以你需要改变网址才能使之工作(这不会是c的问题)? –
是的,网址必须改变。虽然你可以添加一个片段,所以你不会重定向或卸载当前页面,例如'foo.html#bar' –