我一直在玩css滚动驱动的动画(目前只在Chromium浏览器中),但有一件事我真的很难理解,那就是如何使用timeline-scope来爬行DOM并重复应用效果.

使用下面的代码片段,例如…假设我想在看到幻灯片时更改标题的 colored颜色 .我可以让它在第一张幻灯片上工作,但不能在后面的幻灯片上工作.

如果有人能指出我是如何做到这一点的,我将非常感激.在此之前,我非常感谢您.

body {
  timeline-scope: --myScroller;
}

main {
  border: 3px solid blue;
  display: grid;
  place-items: center;
  height: 500vh;
}

.site-header {
  width: 100%;
  position: fixed;
  background: blue;
  top: 0;
  animation-name: change-colour;
  animation-timeline: --myScroller;
  animation-range: exit 0% exit 100%;
}

@keyframes change-colour {
  to {
    background: red;
  }
}

.slide {
  border: 3px solid green;
  height: 50vh;
  display: grid;
  place-items: center;
  &:nth-child(1) {
    view-timeline-name: --myScroller;
  }
}
<div class="site-header">Header</div>

<main tabindex="-1" id="main">
  <div class="slide">
    Lorem ipsum ius kasd cibo utroque an, eum eu populo percipitur, his in equidem posidonium concludaturque. No eam deserunt salutatus, fastidii conceptam consectetuer no vim, sea paulo takimata ei. Tation sadipscing nec ei, cum graeci ancillae et. Modus
    dicit altera nec ad, nostro civibus epicurei et pro. Errem numquam interesset mel at, cu unum illum vim, ius quot splendide disputando in.
  </div>
  <div class="slide">
    Lorem ipsum ius kasd cibo utroque an, eum eu populo percipitur, his in equidem posidonium concludaturque. No eam deserunt salutatus, fastidii conceptam consectetuer no vim, sea paulo takimata ei. Tation sadipscing nec ei, cum graeci ancillae et. Modus
    dicit altera nec ad, nostro civibus epicurei et pro. Errem numquam interesset mel at, cu unum illum vim, ius quot splendide disputando in.
  </div>
</main>

推荐答案

你可以保留一部动画,但我认为你必须定义两部timineline-scope.每张幻灯片一张

body {
  timeline-scope: --myScroller1,--myScroller2;
}

main {
  border: 3px solid blue;
  display: grid;
  place-items: center;
  height: 500vh;
}

.site-header {
  width: 100%;
  position: fixed;
  background: blue;
  top: 0;
  animation-name: change-colour,change-colour;
  animation-timeline: --myScroller1,--myScroller2;
  animation-range: exit 0% exit 100%;
}

@keyframes change-colour {
  to {
    background: red;
  }
}

.slide {
  border: 3px solid green;
  height: 50vh;
  display: grid;
  place-items: center;   
  &:nth-child(1) {
    view-timeline-name: --myScroller1;
  }
  &:nth-child(2) {
    view-timeline-name: --myScroller2;
  }
}
<div class="site-header">Header</div>

<main tabindex="-1" id="main">
  <div class="slide">
    Lorem ipsum ius kasd cibo utroque an, eum eu populo percipitur, his in equidem posidonium concludaturque. No eam deserunt salutatus, fastidii conceptam consectetuer no vim, sea paulo takimata ei. Tation sadipscing nec ei, cum graeci ancillae et. Modus
    dicit altera nec ad, nostro civibus epicurei et pro. Errem numquam interesset mel at, cu unum illum vim, ius quot splendide disputando in.
  </div>
  <div class="slide">
    Lorem ipsum ius kasd cibo utroque an, eum eu populo percipitur, his in equidem posidonium concludaturque. No eam deserunt salutatus, fastidii conceptam consectetuer no vim, sea paulo takimata ei. Tation sadipscing nec ei, cum graeci ancillae et. Modus
    dicit altera nec ad, nostro civibus epicurei et pro. Errem numquam interesset mel at, cu unum illum vim, ius quot splendide disputando in.
  </div>
</main>

Css相关问答推荐

如何使搜索框扩展并溢出其他内容

R SHINY:FILL CONTAINER=TRUE时调整DT数据表高度,

为什么我的容器的弹性包裹会导致我的自动填充网格添加额外的空轨道行?

截断风景中的柔子或强制在其自己的线上,如果是肖像

将鼠标悬停在具有效果的元素上

如何在 CSS 中使 Flex 容器内的网格响应,而不 destruct 外部 Flex 容器的布局?

如何为图像堆叠效果下方的图层实现与磨砂玻璃类似的视觉效果

React Tabs 在 Tabs 之间垂直渲染标签内容

应用边框半径的 iframe 在 4 个角上有细曲线

更改行数时更改 CSS 网格列

Mat table - 保留第一列和复选框

使元素在顶部和中心都有粘性

如何让我的注册按钮在我的网站上像球一样 skip ?

如何在父叠加层之上呈现子子

JavaFX TreeTableView Css for unfocused selected line

删除 IE10 Select 元素箭头

  • 元素上的子弹来自哪里?
  • 我应该在 HTML 中为我的 IMG 指定高度和宽度属性吗?

    ID 在整个页面中必须是唯一的吗?

    CSS:固定到底部并居中