当超长页面时,进入页面滚动条不在最顶部的处理
实现原理: onload事件监听
- 计算dom加载完成所需时间
- 在此时间后调用scrollTo(0,0)回到顶部
domLoading:返回当前网页DOM结构开始解析时(即Document.readyState属性变为“loading”、相应的readystatechange事件触发时)的Unix毫秒时间戳。
domComplete:返回当前网页DOM结构生成时(即Document.readyState属性变为“complete”,以及相应的readystatechange事件发生时)的Unix毫秒时间戳。
<div
className={styles.wrapper}
style={{
background: '#F5F7FA',
}}
onLoad={() => {
var _per = window.performance;
function getsec(time){
return time/1000+'s';
};
const test = getsec(_per.timing.domComplete-_per.timing.domLoading) || 5;
setTimeout(() => {
window.scrollTo(0,0);
}, test * 1000);
console.log("dom渲染耗时:"+getsec(_per.timing.domComplete-_per.timing.domLoading));
}}
>
.... 特别长的dom树
</div>
参考:
h5中performance.timing轻松获取网页各个数据 如dom加载时间 渲染时长 加载完触发时间
JavaScript获取页面加载时间和页面停留时间