javascript - 让父级滚动到某个点,然后子级在父级内部滚动

标签 javascript css

编辑:

这是一个新的 fiddle ,可以更好地说明我要做什么:https://jsfiddle.net/gta4eo3L/3/ .

请注意,为了查看您需要滚动两次的所有子内容。一次让 parent 进入全视野;然后再次滚动父级中的内容。我的问题是如何以无缝的方式实现这一点?换句话说,如何使第一个卷轴的卷轴“势头”延续到第二个卷轴。

原文:

enter image description here

我怎样才能无缝地实现这种行为?父级高度是固定的,我可以使用 position:sticky 来固定它;但结合 overflow:scroll 属性,子级将在父级到达停止点之前在父级内部滚动。

在这里查看我的 fiddle :https://jsfiddle.net/xzo1teaw/11/

它有点工作,但在父滚动和父滚动之间的子滚动之间不能平滑过渡。

最佳答案

一旦你理解了一件重要的事情,这就相对容易实现了
child 不必是 parent 的 child
+ 事实上,您可以使用 CSS Grid 将多个元素放在一个地方
+ z-index 将元素置于粘性之上

body {
/*  some space to scroll  */
  height: 500vh;
/*  some space to scroll  */
  padding-top: 50vh;
}

.container {
  display: grid;
  grid-template-areas: "only";
  justify-items: center;
}

.parent {
  grid-area: only;
  background: grey;
  position: sticky;
  top: 10vh;
  width: 90%;
/*  one screen height  */
  height: 90vh;
}

.child {
/*  offset for parent  */
  margin-top: 200px;
  height: 200vh;
  grid-area: only;
  background: linear-gradient(
    0deg,
    rgba(131, 58, 180, 1) 0%,
    rgba(253, 29, 29, 1) 50%,
    rgba(252, 176, 69, 1) 100%
  );
  z-index: 2;
  width: 80%;
}

body * {
  display: inline-block;
  border: 1px solid black;
}
 <div class="container">
   Container
   <div class="parent">Parent</div>
   <div class="child">Child</div>
</div>

关于javascript - 让父级滚动到某个点,然后子级在父级内部滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74061683/

相关文章:

javascript - 在javascript中询问是/否问题的代码

javascript - 在 SVG 中动态绘制矩形

CSS 定义列表 - 与无序列表内联移动

javascript - 更新日落/日出图像

javascript - Angular 不更新服务变量

Javascript翻转图像

CSS3 点击菜单

css - 将我的光标指针更改为自定义光标

python - Django 模板 : Use different css for pages

javascript - 如何以编程方式创建 20x20px 单元格网格背景?