为什么关键帧动画会滞后于 React 应用程序中的渲染?

Why does a keyframes animation lag on render in a react app?

这是我的第一个问题!我正在学习反应并想实现到登陆页面的幻灯片过渡。我的期望是让文本在加载时滑到页面上,但是当我的组件首次呈现时,转换会产生明显的滞后。 (如果重要的话,这发生在 Chrome 版本 83.0.4103.116(官方构建)(64 位)中)。

  "react": "^16.13.1"

渲染滞后的初始关键帧:

  .landing {
    font-size: 100%;
    animation: slide-left 1.0s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
  }


   @keyframes slide-left {
     0% {
       transform: translateX(0);
     }
     100% {
       transform: translateX(-100px);
     }
   }

经过研究,我添加了 'will-change' 的 CSS 属性 来帮助我的加载时间:

.landing {
  font-size: 100%;
  animation: slide-left 1.0s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
  will-change: transform;
}

这没有帮助,

那是我发现 React Transition [https://reactcommunity.org/react-transition-group/transition][1] 的时候。我读到 CSS 动画可能会产生延迟,除非使用 'transform' 或 'slide' 属性,这可能是延迟时间的更好解决方案。

带有关键帧的当前组件

import React, { Component } from 'react';
import '../SCSS/Header.scss';


class Header extends Component {
     render(){
       return (
         <divclassName="landing flex row justify-content-center">
           <div className="title row">
             <p>
               Alyssa Hooper
             </p>
           </div>
           <div className="job row">
             <p>
               lifelong learner; aspiring junior developer
             </p>
           </div>
         </div>
    );
  }
}




export default Header;

问题已解决。这不是关键帧滞后,而是我在关键帧文本上导入的 google 字体。带有 google 字体的预加载脚本被添加到我的 HTML 文档的头部并解决了问题。