【发布时间】:2021-02-04 12:37:56
【问题描述】:
我有一个页面,它基本上是一个单独的寻呼机。菜单使用# 标签滚动到页面上的不同位置。现在我在这个页面上添加了一个商店,它的网址是:mypage.com/shop。
现在,如果我单击主页上的菜单。它滚动到#home。但是,当我单击商店时,它会转到 mypage.com/shop,而当我现在单击主页链接时,它会转到:mypage.com/shop#home。如果我将菜单中的链接从#home 更改为 mypage.com#home,它可以工作,但滚动不再起作用。我制作了一个 jquery 脚本来滚动到不同的锚点,但这并不适用于完整的 url,例如:mypage.com#home。
jQuery(function($) {
$(".menu-item").on("click",function() {
var href = $(this).attr('href');
var elem = $(href).offset().top;
$('html, body').animate({
scrollTop:elem - 80
},'slow');
});
});
有没有办法更改此脚本以使用 href 链接,例如:mypage.com#home?或者有没有办法只在基本网址上使用#home?因此,如果我从 mypage.com#home 切换到 mypage.com/shop 然后返回,它将使用 mypage.com 作为 url 而不是保留 /shop?
【问题讨论】:
-
@Johannes 实际上没有。 window.location.hash 为空或第一次单击时的旧哈希。第二次点击有效,但我不想点击两次。