当然可以。在不触发网页滚动的情况下,您可以使用 JavaScript 的 window.history.pushState()
方法来更新 window.location.hash
。
以下是一个示例代码:
function updateHashWithoutScrolling(newHash) {
// 保存当前滚动位置
var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
// 更新 hash
window.location.hash = newHash;
// 恢复滚动位置
window.scrollTo(scrollLeft, scrollTop);
}
// 使用示例
updateHashWithoutScrolling('#new-hash');
这个方法首先保存当前页面的滚动位置,然后更新 window.location.hash
,最后使用 window.scrollTo()
方法将页面滚动回原来的位置。这样就可以在不触发滚动的情况下更新 window.location.hash
了。
领取专属 10元无门槛券
手把手带您无忧上云