我有一个单页滚动类型的网站,该网站使用滚动捕捉插件从一个部分捕捉到下一个部分。滚动到每个部分时,哈希值都会更改(#1,#2,#3等)。

我想使用哈希更改来触发动画。因此,在测试我编写的功能时,它仅在刷新页面后才有效。我无法发布网站本身,因为它是本地的,但这是代码。

JS:

$(document).ready(function () {

//Trigger an animation based on hash location/URL
function hashChange() {
    alert("hashChange works!");
};
var hash = window.location.hash;
if (hash === '#3') {
    hashChange();
};

});


任何帮助将不胜感激。



=======



更新:

这是我更新的代码。但是现在,它在每次哈希更改(#1,#2,#3,#4)上运行。

function hashChange() {
    alert("hashChange works!");
};
window.addEventListener('hashchange', hashChange);
var hash = location.hash;
if (hash === '#3') {
    hashChange();
};


有人知道如何指定吗?它也是一页滚动,可在滚动时捕捉到各个部分。当您从部分滚动时,哈希会发生变化,但不会触发我编写的警报。

帮帮我!

最佳答案

您可以为hashchange事件注册一个事件侦听器。

在您的情况下:

function hashChange() {
  alert('hashChange works!');
}
window.addEventListener('hashchange', hashChange);

10-04 20:17