首页 > 解决方案 > 仅在加载新页面时执行功能

问题描述

我有一个包含以下链接的菜单:

<a href="https://someurl.com/home/">Home</a>
<a href="https://someurl.com/about/">About</a>
<a href="https://someurl.com/about/#services">Services</a>

我有一个预加载器元素,它在页面加载之间淡入淡出,并在单击链接时被激活。因此,如果您在主页上并单击“服务”,则预加载器元素淡入,“关于”页面加载,向下滚动到 #services 锚点,然后预加载器元素淡出。

我已经设置了如果href以#开头的位置,就像href="#services"预加载器不会加载,因为页面只是滚动到锚点。

问题是,如果您在“关于”页面上,然后单击“服务”,则会加载预加载器,因为 href 不以 # 开头。

问题:如何避免预加载器加载停留在同一页面上的锚元素?

标签: jquery

解决方案


听起来您需要将目的地与您当前的 URL 进行比较,并且只显示它们不同的加载程序。

考虑比较当前 URL 和目标的无哈希版本。

IE。获取没有哈希的当前 URL:

window.location.href.split('#')[0]


推荐阅读