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

如何实现固定在屏幕上、仅可见区域随页面滚动的图片效果?

固定图片、滚动切换可见区域效果实现方案

该类类似窗户的滚动效果通常可以通过以下两种方案实现,适配不同的使用场景:

方案1:CSS背景图实现(最简便)

核心依赖background-attachment: fixed属性,让背景图固定在视口位置,仅随容器的位置变化露出对应区域的背景内容,无需JS代码,兼容性极佳。

  • 实现代码示例:
<!-- 承载效果的“窗户”容器 -->
<div class="window-bg"></div>
<!-- 额外页面内容,撑高页面触发滚动 -->
<div style="height: 1200px;">其他页面内容区域</div>
.window-bg {
  /* 定义“窗户”的尺寸,也就是图片可见区域的大小 */
  height: 500px;
  width: 100%;
  /* 背景图相关配置 */
  background-image: url("你的图片路径");
  background-size: cover;
  background-position: center;
  /* 核心属性:让背景图固定在视口,不随页面滚动位移 */
  background-attachment: fixed;
}
  • 优缺点说明:代码量极少,适配所有主流浏览器;但仅适合纯展示场景,对图片做交互、动态修改的灵活性较低。

方案2:DOM元素实现(高灵活性)

通过父容器做裁剪、子图片固定定位的逻辑实现,适合需要对图片做动画、事件绑定等复杂操作的场景。
原理:父容器作为“窗户”跟随页面滚动,仅展示内部固定定位图片的对应区域,超出部分自动裁剪。

  • 实现代码示例:
<div class="window-container">
  <img src="你的图片路径" class="fixed-pic" alt="固定展示的图片">
</div>
<div style="height: 1200px;">其他页面内容区域</div>
.window-container {
  position: relative;
  /* 定义“窗户”的可见区域尺寸 */
  height: 500px;
  width: 100%;
  /* 核心属性:裁剪超出容器的图片内容 */
  overflow: hidden;
}
.fixed-pic {
  /* 核心属性:让图片固定在视口位置,不随页面滚动位移 */
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  /* 调整层级避免遮挡其他页面内容 */
  z-index: -1;
}
  • 优缺点说明:灵活性极高,可对图片做任意样式修改、事件绑定、动画效果;需要注意调整z-index层级,避免和页面其他固定定位元素冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:54:02