使用命名锚链接到页面时,例如page.html#heading将浏览器加载页面,然后跳转到锚点。是否有一个浏览器事件在完成后触发?
解释其背后的原因:我想使用该事件在浏览器中触发动画。
非常感谢。
答案 0 :(得分:3)
更改哈希会触发hashchange
event。
但是,我不认为在加载链接已经具有哈希集的URL时会触发它。 但如果您希望根据哈希值运行某个脚本,则可以检查页面加载时的哈希值(location.hash
)。
答案 1 :(得分:0)
在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>
花哨的步法,以防止在用户正常滚动窗口时不断触发滚动事件。