CSS 伪元素的翻译速度比主元素快

CSS pseudo elements translate faster than main element

提问人:Thomas Pötz 提问时间:10/4/2023 最后编辑:marc_sThomas Pötz 更新时间:10/4/2023 访问量:33

问:

我有一个简单的div,里面有前后伪元素。我使用关键帧沿 y 轴转换所有内容。

伪元素的移动速度比主元素快,我不知道为什么。

我在伪元素上显式设置了位置和插图,并继承了动画。

这是我的整个源代码示例:

      body {
        width: 100%;
        height: 100%;
        background-color: black;
      }
      .snow {
        position: absolute;
        content: "";
        inset: 0;
        background-image: radial-gradient(4px 4px at 100px 50px, #fff, transparent);
        animation: snowAnimation 4s linear infinite;
      }

      .snow::after,
      .snow::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: radial-gradient(4px 4px at 100px 50px, #fff, transparent);
        animation: inherit;
      }

      @keyframes snowAnimation {
        from {
          transform: translateY(0);
        }
        to {
          transform: translateY(650px);
        }
      }
  <body>
    <div class="snow"></div>
  </body>

css css-animations 伪元素

评论

0赞 jessman5 10/4/2023
我的网站或项目中的某些内容不起作用。我可以只粘贴一个链接吗?不要链接到外部网站,也不要单独粘贴代码,而是提供代码片段来重现此处的问题
0赞 imhvost 10/4/2023
你想达到什么目的?

答:

1赞 jessman5 10/4/2023 #1

伪元素的运行速度明显更快,因为您同时也在为它们的父元素制作动画!由于父元素也下降,因此伪元素的路径会更长,但它的动画持续时间相同。因此,在相同的时间内,它有更多的路要走。这就是为什么它看起来更快。

使伪元素的动画速度变慢,或者让两个元素彼此相邻,而没有动画父元素。<div>

1赞 Sean 10/4/2023 #2

伪元素是其主要元素的子元素。如果翻译 main 元素,则 pseudo 元素会随行。将相同的转换应用于元素及其伪元素有点像从已经以 60 英里/小时的速度行驶的汽车中抛出 60 英里/小时的球场——你最终会得到一个以 120 英里/小时的速度行驶的球。