html 中div里面很多li我们用sticky达到黏住div顶部的效果同时点击这个黏住的li可以回到li原本的位置
可以通过以下步骤实现:
- 在 CSS 中为 div 添加 position: sticky; top: 0; 属性。这将使 div 黏住在页面顶部。
- 为需要回到原位置的 li 添加一个 class,例如 "scroll-to"。
- 使用 JavaScript 监听这些 li 的点击事件,获取其在页面中的位置,并使用 window.scrollTo() 方法将页面滚动至该位置。
下面是示例代码:
HTML:
<div class="sticky-div">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li class="scroll-to">Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
</div>
CSS:
.sticky-div {
position: sticky;
top: 0;
}
JavaScript:
// 获取所有需要回到原位置的 li 元素
const scrollToElements = document.querySelectorAll('.scroll-to');
// 监听点击事件
scrollToElements.forEach(element => {
element.addEventListener('click', () => {
// 获取元素在页面中的位置
const elementPosition = element.getBoundingClientRect().top + window.scrollY;
// 滚动页面至该位置
window.scrollTo({
top: elementPosition,
behavior: 'smooth' // 添加平滑滚动效果
});
});
});
原文地址: https://www.cveoy.top/t/topic/b03A 著作权归作者所有。请勿转载和采集!