将粘性图像彼此叠加

Placing sticky images on top of each other

目标:

在网站中向下滚动时,图像会随之移动并根据您滚动的距离发生变化。

我的计划:

将图片放在一起,让它们保持粘性。 运行 动画取决于滚动位置。

我的问题:

我有 三张 图片需要置顶。但是,它们也需要是绝对的才能相互叠加,这显然是矛盾的。我是不是从错误的方向来解决问题?

别想太多关于动画的东西,我会想办法的。现在我只需要帮助将图像放在彼此的顶部,同时保持粘性。

当前代码: https://codepen.io/alsb/pen/oNwZYQw

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css"href="style.css">
    <title>Document</title>
</head>
<body>
    <h1>Hello to Sticky World</h1>
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. 
        Numquam et blanditiis repellendus voluptas iusto recusandae quis 
        quos iure quod eos possimus ad corrupti, nam asperiores, 
        minima quisquam praesentium neque ratione?
    </p>
    <div class="container">
        <img class="item" src="https://picsum.photos/300/200" />
        <img class="item" src="https://picsum.photos/300/200" />
        <img class="item" src="https://picsum.photos/300/200" />
    </div>

    <p>...</p>
</body>
</html>
.sticky-container {
    height: 100%;
}

img.sticky {
    position: -webkit-sticky;
    position: sticky;
    top: 50px;
    width: 200px;
}

.container {
    display: flex;
    justify-content: space-around;
    align-items: flex-start;
    border: 2px dashed rgba(114, 186, 94, 0.35);
    height: 400px;
    background: rgba(114, 186, 94, 0.05);
  }
  
  .item {
    position: sticky;
    top: 1rem;
  }

解决方案是不使用 <img>。最里面的 div 将是粘性的,包裹在绝对 div.

<div class="wrapper">
    <div class="container">
        <div class="item"></div>
    </div>
    <div class="container">
        <div class="item"></div>
    </div>
</div>
.wrapper {
    position: relative;
    width: 50vw;
}

.container {
    display: flex;
    position: absolute;
    justify-content: space-around;
    align-items: flex-start;
    border: 2px dashed rgba(114, 186, 94, 0.35);
    height: 900px;
    background: rgba(114, 186, 94, 0.05);
  }
  
  .item {
    position: sticky;
    top: 1rem;
    background-image: url("https://picsum.photos/500/300");
  }