You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

页面滚动时左侧垂直滚动条反向联动的实现问题求助

修正左侧滚动条同步问题的方案

原代码的问题在于动画逻辑与需求反向,通过动画延迟模拟进度容易导致不同步。以下是符合需求的修正方案:

核心修改思路

  • 保留滚动进度计算的JS逻辑,--scroll变量会随页面滚动从0(顶部)线性变化到1(底部)
  • 放弃动画模拟,直接用--scroll变量控制滚动条高度,确保完全同步
  • 调整滚动条定位为视口固定底部,实现"从下向上反向移动"的效果

修正后完整代码

HTML

<div class="top-line"></div>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>

CSS

.top-line {
    width: 7px;
    /* 用滚动进度直接计算高度,初始0%隐藏 */
    height: calc(var(--scroll) * 100%);
    /* 固定在视口左侧底部,确保滚动时位置不变 */
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 2000;
    background-color: #f00;
    border-radius: 0;
}

/* 初始化滚动进度变量 */
:root {
    --scroll: 0;
}

JavaScript

window.addEventListener('scroll', () => {
  // 计算滚动进度:当前滚动距离 / (页面总高度 - 视口高度)
  document.body.style.setProperty('--scroll', window.pageYOffset / (document.body.offsetHeight - window.innerHeight));
}, false);

效果说明

  • 初始状态:左侧滚动条高度为0%,完全隐藏
  • 页面向下滚动时:滚动条从视口底部开始向上逐渐变长,滚动进度与页面滚动完全同步
  • 滚动至页面底部时:滚动条高度达到100%,覆盖整个左侧视口高度

内容的提问来源于stack exchange,提问作者Wp-PHP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:07:39