html页面跳转或者a标签锚点跳转,解决页面滚动问题3个(1.从底部开始滚动,2.滚动不到指定锚点位置,3.页面展示不在最上面)
1.当页面滑动了一些之后跳转新页面或者刷新当前页面,页面展示就不会在顶部
2.当页面滑动了一些之后带锚点跳转新页面,就可能会出现从下面向上面滚动到指定锚点的情况(滑动距离高于锚点距离的时候)
3.当页面的头部设置了固定到顶部,没有滑动页面头部高度是200,滑动了之后头部只保留一部分固定高度变成了100就可能会出现锚点跳转不到指定位置的情况
三个问题都使用统一的解决方法,亲测有效
(function(){// 页面滚动,先返回顶部在根据是否有锚点进行跳转window.scrollTo(0, 0);const hash = window.location.hash;// 如果页面有锚点跳转就执行锚点滚动if (hash) {const el = document.querySelector(hash);setTimeout(() => {el && el.scrollIntoView({ behavior: "smooth", block: "start" });}, 10);}
})