13

当使用命名锚链接到页面时,例如 page.html#heading 浏览器将加载页面,然后跳转到锚。完成后是否会触发浏览器事件?

解释一下我背后的原因:我想使用事件来触发浏览器中的动画。

非常感谢。

4

2 回答 2

4

更改哈希会触发hashchange事件

但是,我认为在加载链接已经设置了哈希的 url 时它不会触发。但是location.hash,如果您希望某个脚本根据哈希值运行,您可以在页面加载时检查哈希值 ( )。

于 2013-10-10T14:56:20.877 回答
1

在 Mac 上的 Safari 7.0.3 中,这可以工作......

HTML 有:

<a id="jumper" href="#aa">Jump</a>

JS:

<script>
var j = document.getElementById("jumper");

j.addEventListener("click", registerAnchorJump);

function registerAnchorJump(e) {
    window.addEventListener("scroll", unregisterAnchorJump);
}

function unregisterAnchorJump(e) {
    // trigger your animation...
    console.log(window.scrollY);
    window.removeEventListener("scroll",unregisterAnchorJump);
}
</script>

当用户正常滚动窗口时,防止滚动事件不断触发的花哨步法。

于 2014-05-02T21:36:44.650 回答