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

带行列标签的热力图滚动条位置优化需求

热力图滚动条与行列标签同步实现方案

问题说明

当前实现将行列标签与热力图置于同一可滚动容器内,导致滚动条范围包含了标签区域,不符合仅热力图本体显示滚动条,且滚动时行列标签同步跟随的需求。

修改后代码实现

HTML 代码

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
  <div class="corner"></div>
  <div class="col-labels">
    这是热力图上方的列标签
  </div>
  <div class="row-labels"> 
    这是热力图左侧的行标签
  </div>
  <div class="scrollable-container">
    <div class="heatmap">
      这是热力图本体
    </div>
  </div>
</div>
<script>
const scrollContainer = document.querySelector('.scrollable-container');
const rowLabels = document.querySelector('.row-labels');
const colLabels = document.querySelector('.col-labels');

scrollContainer.addEventListener('scroll', () => {
  rowLabels.scrollTop = scrollContainer.scrollTop;
  colLabels.scrollLeft = scrollContainer.scrollLeft;
});
</script>
</body>
</html>

CSS 代码

.container {
    width: 500px;
    height: 500px;
    border: 2px solid black;
    position: relative;
    display: grid;
    grid-template-columns: 100px auto;
    grid-template-rows: 100px auto;
} 

.col-labels {
    grid-row: 1;
    grid-column: 2;
    overflow-x: hidden;
    width: 100%;
    height: 100px;
    background-color: grey;
    padding: 8px;
    box-sizing: border-box;
}

.row-labels{
    grid-row: 2;
    grid-column: 1;
    overflow-y: hidden;
    width: 100px;
    height: 100%;
    background-color: grey;
    padding: 8px;
    box-sizing: border-box;
}

.corner{
    grid-row: 1;
    grid-column: 1;
    background-color: white;
    height: 100px;
    width: 100px;
}

.scrollable-container {
    grid-row: 2;
    grid-column: 2;
    overflow: auto;
}

.heatmap{
    height: 1000px;
    width: 1000px;
    background-color: blue;
}

关键修改点

  • 将滚动容器从外层.container移至.scrollable-container,确保滚动条仅作用于热力图区域
  • 移除行列标签的sticky定位,改为监听热力图容器的滚动事件,通过JavaScript同步行列标签的滚动位置
  • 外层容器保持固定宽高的网格布局,行列标签始终占据对应位置,与热力图对齐

内容的提问来源于stack exchange,提问作者Jonas Blum

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:12:43