jquery - 仅在加载新页面时执行功能
问题描述
我有一个包含以下链接的菜单:
<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 不以 # 开头。
问题:如何避免预加载器加载停留在同一页面上的锚元素?
解决方案
听起来您需要将目的地与您当前的 URL 进行比较,并且只显示它们不同的加载程序。
考虑比较当前 URL 和目标的无哈希版本。
IE。获取没有哈希的当前 URL:
window.location.href.split('#')[0]
推荐阅读
- matlab - 用 Matlab 解释神经人工网络训练中的梯度和性能结果
- oracle - Oracle 侦听器停止工作
- c++ - 从动态加载的库中记录
- javascript - 在 JavaScript 中的 URL 中间添加“/path/”
- javascript - 在订阅响应中初始化的 Item 类型的 Angular 4 Component 变量没有在 Item 类中定义的方法
- c# - 如何反转字符串的第一个和最后一个字符?
- php - 使用 PHP 数组搜索 SQL DB 中以逗号分隔的列
- javascript - 点击时的jquery锚点,转换为表单提交在firefox中不起作用
- c# - 在 ASP.NET Core MVC 中显示用户数据
- java - 随机类中的 nextDouble 和 nextFloat 有什么区别?