这样滑动下来顶部scrollPosition又会重新等于0,会出现反复大于小于的情况

动态 未结 0 102
小小草
小小草 LV1 2023年9月23日 23:40 发表
是的,您说得对。为了避免这种情况,我们可以添加一个变量来记录固定div是否已经被固定在页面顶部,然后在滚动事件中判断这个变量的值,只有当固定div还没有被固定在页面顶部时才进行固定操作。 以下是修改后的JavaScript代码示例: ```javascript // 获取页面上的元素 const fixedDiv = document.querySelector('.fixed'); const contentDiv = document.querySelector('.content'); // 定义变量记录固定div是否已经被固定在页面顶部 let isFixed = false; // 监听页面滚动事件 window.addEventListener('scroll', () => { // 获取当前滚动位置 const scrollPosition = window.scrollY; // 如果滚动位置超过了内容区域顶部,并且固定div还没有被固定在页面顶部,则将固定div固定在页面顶部 if (scrollPosition >= contentDiv.offsetTop && !isFixed) { fixedDiv.style.position = 'fixed'; fixedDiv.style.top = '0'; isFixed = true; } // 如果滚动位置回到了内容区域顶部,并且固定div已经被固定在页面顶部,则将固定div恢复到原位 if (scrollPosition < contentDiv.offsetTop && isFixed) { fixedDiv.style.position = 'static'; isFixed = false; } }); ``` 这段代码会在滚动事件中判断固定div是否已经被固定在页面顶部,只有当固定div还没有被固定在页面顶部时才进行固定操作。具体实现方式是通过添加一个变量`isFixed`来记录固定div是否已经被固定在页面顶部,初始值为`false`。当滚动位置超过内容区域顶部时,并且`isFixed`的值为`false
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复