【问题标题】:Debug CSS animation with Chrome Devtools使用 Chrome Devtools 调试 CSS 动画
【发布时间】:2025-12-16 10:45:02
【问题描述】:

是否可以查看或调试单个元素在transition-css 动画中执行的步骤? 我正在使用 Chrome 开发工具,但我对它很陌生。我用谷歌搜索并从时间轴上看到了一些东西,但我没有找到一步一步的东西。

我的动画从 0% 开始,一直到 100%,但在 50% 附近似乎有些奇怪,尽管没有声明 50% 步骤。这就是为什么我想查看正在发生的事情。

【问题讨论】:

  • 与其问“给我看看 google chrome 的开发工具”怎么样,不如来看看有问题的动画。知道为什么会这样吗?后者可能更有效地解决问题:)
  • 好吧,我相信你们能够很快解决这个问题,但我想了解是否以及如何调试 CSS 动画,有点像一步一步,只是为了自己学吧。这样我就可以解决自己的问题:-)
  • 给一个人一条鱼,你喂他一天;教一个人钓鱼,你养他一辈子。 ;-)
  • 我有一个给你 - if you build a man a fire, he'll be warm for a night. set a man on fire, and he'll be warm for the rest of his life. 关键是,如果我们现在能指出“错误”,那么你将来出错的可能性就会降低! :)
  • 呵呵。好吧,谢谢,但实际上我几分钟前自己才找到解决方案。它与重新计算中心(边距:自动)和调整元​​素大小有关。因此,通过一些猜测、反复试验,我设法解决了这个问题。如果我知道如何调试这些东西会更好。如果有可能,我真的很想知道......不要自己找到......

标签: css google-chrome debugging google-chrome-devtools transitions


【解决方案1】:

上次更新时间为 2018 年 1 月 11 日。

The Chrome DevTools Animation Inspector 有两个主要用途。

  1. 检查动画。您想放慢速度、重播或检查 动画组的源代码。
  2. 修改动画。你想修改时间,延迟, 动画组的持续时间或关键帧偏移。 贝塞尔曲线编辑 目前不支持和关键帧编辑。

例如无法在关键帧中修改 CSS 2D 变换的 scale 方法的值。尝试运行下面给出的 sn-p:

.animates {
  animation-timing-function: ease-out;
  animation-duration: 1s;
  animation-iteration-count: infinite;
}
.wrapper {
  position: relative;
  margin-top: 10px;
}
.btn-overlay {
  animation-name:grow;
  -webkit-animation-name:grow;
  position: absolute;
  width: 50%;
  top: 0;
  left: 27%;
}
@keyframes grow {
  0%{
    transform: scale(1.0);
    -moz-transform: scale(1.0);
    -webkit-transform: scale(1.0);
    left: 27%;
  }
  80% {
    transform: scale(1.0);
    -moz-transform: scale(1.0);
    -webkit-transform: scale(1.0);
    left: 27%;
  }	
  90% {
    transform: scale(1.04);
    -moz-transform: scale(1.04);
    -webkit-transform: scale(1.04);	
    left: 27.5%;
  }
  100%{
    transform: scale(1.0);
    -moz-transform: scale(1.0);
    -webkit-transform: scale(1.0);	
    left: 27%;
  }	
}
.button{
  background-color: #f49a22!important;/* Old browsers */
  background: -moz-linear-gradient(left, #efaf00 0%, #dd5c00 100%); /* FF3.6-15 */
  background: -webkit-linear-gradient(left, #efaf00 0%,#dd5c00 100%); /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to right, #efaf00 0%,#dd5c00 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#efaf00', endColorstr='#dd5c00',GradientType=1 ); /* IE6-9 */

  box-shadow: 0px 3px 6px rgba(156, 116, 86, 0.4);
  display: inline-block;
  color: white;
  padding: 0 14px;
  height: 30px;
  border-radius: 80px!important;
  font-size: 12px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div class="wrapper">
  <div class="animates btn-overlay">
    <input type="submit" value="SIGN UP HERE!" name="subscribe" class="button">
  </div>
</div>

</body>
</html>

动画检查器支持 CSS 动画、CSS 过渡和网络动画。 requestAnimationFrame 目前不支持动画。

【讨论】:

    【解决方案2】:

    是的,这是可能的。

    可以使用 Chrome DevTools 调试过渡和 CSS 动画。只需点击此按钮:

    然后,“动画”选项卡将在控制台面板中打开(如果您已关注 DevTools,则可以通过按 Esc 打开它 - 只需单击 DevTools 即可获得焦点):

    【讨论】:

    • 太棒了...... :) 我不知道这个......它为我节省了很多时间。
    • 我发现由于某种原因我的最新版 Chrome 不再有那个按钮。我必须单击右上角的 3 点图标,然后单击更多工具,然后选择动画
    • “过滤器”部分中的按钮似乎已被删除。它仍然可以在“更多工具”->“动画”下右上角的三点菜单中找到。它也可以在“控制台”旁边的三点菜单中作为“动画”使用。
    【解决方案3】:

    经过一些研究,目前看来使用 Chrome DevTools 是不可能的。以下是我发现的一些随机信息:

    对于它的价值,这里有一些建议,虽然我没有测试过这些并且我对这个主题相当无知:

    • 如果可能,pause the animation 通过更改元素的 animation-play-state 属性:

      .paused {
          -webkit-animation-play-state:paused;
          -moz-animation-play-state:paused;
          -o-animation-play-state:paused; 
          animation-play-state:paused;
      }
      
    • 将动画拖出更长的时间,使过渡行为更加清晰。

    • 如果执行动画之类的任务至关重要,还可以选择使用 &lt;canvas&gt; 动画(显然 Chrome DevTools 有更好的调试支持)。

    【讨论】:

      【解决方案4】:

      Download Chrome Canary 可以访问新的动画控制功能。 观看此视频以预览其工作原理:

      https://vimeo.com/116038639

      【讨论】:

      • 这并没有让你足够慢,也没有暂停它的捷径,它完全是鼠标驱动的。我有一个动画错误,如果没有精确的计时/快捷方式,目前几乎无法调试!!
      • 可以在valhead.com/2015/01/06/quick-tip-chrome-animation-controls 找到描述其工作原理的附加文本。此外,它现在是常规 Chrome 版本 43.0.2357.132。