可以通过以下步骤实现:

  1. 在 CSS 中为 div 添加 position: sticky; top: 0; 属性。这将使 div 黏住在页面顶部。
  2. 为需要回到原位置的 li 添加一个 class,例如 "scroll-to"。
  3. 使用 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' // 添加平滑滚动效果
    });
  });
});
html 中div里面很多li我们用sticky达到黏住div顶部的效果同时点击这个黏住的li可以回到li原本的位置

原文地址: https://www.cveoy.top/t/topic/b03A 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录