- 思路
1.获取这个dom节点
2.设置页面的顶部的位置 = 元素距离顶部的位置
const companyDom = document.querySelector('#company')
document.documentElement.scrollTop = companyDom.offsetTop
- 但是这样会出现一个问题 没有滚动的效果 而是一闪直接到顶部
- 可以使用递归动画的方式来实现
const companyDom = document.querySelector('#company')
let timer
let index = 0
cancelAnimationFrame(timer);
timer = requestAnimationFrame(function fn() {
index+=80
if (index < companyDom.offsetTop) {
document.documentElement.scrollTop = index
timer = requestAnimationFrame(fn);
} else {
cancelAnimationFrame(timer);
}
});
const companyDom = document.querySelector('#company').scrollIntoView({
behavior: "smooth",
block: "center",
});