javascript - 手动添加浏览器历史记录条目(跨浏览器)

标签 javascript jquery html

我不知道是否有可能以任何方式实现我想做的事情。 我得到了包含一些部分的单页网站。像这样的事情:

<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);
});

非常明显的是,当我单击浏览器后退按钮时,它不会淡出前一部分。它只会返回到我打开的上一个网站。
< br/>所以我的问题是:有没有办法在点击链接时在浏览器中添加历史记录条目?这样我就可以按后退按钮,然后它就会淡出上一部分?
为了在单击链接之前获取可见部分,我这样做了:

var currentPage = $(".page:visible").attr('class').split(' ')[1];

但不幸的是,这对我想要实现的目标没有用。

如果有人能为我提供一些如何解决这个问题的帮助(或者如果可能的话),我会非常高兴

最佳答案

您必须使用浏览器History API更新 URL。然后你可以用 onpopstate 检测来回运动。并相应地调用您的 fadeInfadeOut 方法。

关于javascript - 手动添加浏览器历史记录条目(跨浏览器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45321097/

相关文章:

javascript - 点击用茧销毁后,如何在不销毁记录的情况下重新计算发票

javascript - Azure AD 何时使用 API 权限与公开 API

javascript - 将事件从 nodejs 插件发送到 javascript

javascript - 像在 zendesk.com 上那样创建 "floating"顶部导航?

html - 对齐网格列

javascript - 在固定 Div 内相对缩放 Svg(CSS 和 JS)

javascript - 如何使用 jQuery 知道何时取消选择 &lt;input&gt; 元素

javascript - 如何使用 get 方法将 ajax 与 graphql 结合使用?

html - CSS 样式表未链接

javascript - 如何使用 html 用户输入在 jQuery 中创建表格?