本文主要是介绍js使用scrollIntoView()被遮挡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用targetEl.scrollIntoView(),让目标元素滚动到可视区,但是顶部有fixed的标题元素,导致目标元素被遮挡。
1. 使用 scrollIntoView 的 options 参数
targetEl.scrollIntoView({behavior: "smooth", block: "start"});// 然后稍微延迟执行滚动调整以考虑到固定头部的高度
setTimeout(() => {window.scrollBy(0, -fixedHeader.offsetHeight); // 假设fixedHeader是固定定位元素的变量引用
}, 100);
2. 计算偏移量并使用 window.scrollTo
const elementPosition = targetEl.getBoundingClientRect().top + window.pageYOffset;
const offsetPosition = elementPosition - fixedHeader.offsetHeight; // 减去固定头部的高度window.scrollTo({top: offsetPosition,behavior: "smooth"
});
3. 使用 CSS scroll-margin-top 属性
.target-element {scroll-margin-top: 100px; /* 假设固定头部的高度是100px */
}
这篇关于js使用scrollIntoView()被遮挡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!