没有页面重新加载就无法更改网址

时间:2016-03-13 02:22:58

标签: javascript jquery css-animations

我走到了尽头。我正在进行水平滚动页面。我在主菜单导航中使用此代码在页面标记之间滚动流畅。 Like here

$('ul.menu a').bind('click',function(event){
    var $anchor = $menuLink;
        $('html, body').stop().animate({
            scrollLeft: $($anchor.attr('href')).offset().left
        }, time);

        $('ul.menu a').each(function(){
            $this = $(this);
            $this.removeClass('active');
        });
        $anchor.addClass('active');
    });

我在页面的介绍中也有CSS动画,它会在页面加载时隐藏一些元素。但是当刷新页面时我需要这些元素,并且只应为第一页加载加载简介。如果我在点击主菜单导航链接事件

后添加一些代码,我想通了
window.location.hash = $(this).attr("href");

当页面将被刷新时,它将检查url上的当前哈希,然后加载css动画,因为if语句依赖于hash。

但是页面无法在标签页面之间水平流畅地设置动画。由于更改了网址中的哈希,页面正在刷新。

清楚吗?任何的想法?问题是因为这个css动画而开始的。我在开始时隐藏主菜单并在几秒钟的动画后显示它。这是在页面刷新后的所有时间。我当时也在考虑使用cookies,但我觉得它有风险,因为如果用户不同意cookie,那么动画将开始每一页的重新加载,这将导致隐藏主导航。

1 个答案:

答案 0 :(得分:0)

您正在寻找的示例代码是:

window.history.pushState("object or string", "Title", "/new-url");

有关更多信息,请参阅链接Updating address bar with new URL without hash or reloading the page