0

相关代码:

const fadeInRight = keyframes`
    from {
        opacity:0;
        transform: translatex(-200px);
    }
    to {
        opacity:1;
        transform: translatex(0);
    }
`;
const bubbleFadeRight = css`
  animation: ${fadeInRight} 2s infinite;
`;

//check condition and set bubbleFade = bubbleFadeLeft or bubbleFadeRight
const bubbleFade = { bubbleFadeRight };

function App() {
  return (
    <div>
      {/* Not working: */}
      <div css={bubbleFade}>I blink!</div>

      {/* Working: */}
      <div
        css={css`
        // animation: ${bubbleFade}
      `}
      >
        I blink!
      </div>
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

转载: https ://codesandbox.io/s/dawn-rain-46ocm

问题描述: 我不知道为什么当我使用案例 2 时,它正在工作,但案例 1 没有工作。

4

1 回答 1

0

问题是您没有正确分配动画 CSS 属性,您不需要重新定义您的 css 属性:

    ...
    <div
     css={css`
     // animation: ${bubbleFade}
     `}
    >
    ...

只需直接分配它,因为您有bubbleFadeLeft并且bubbleFadeRight作为 CSS 变量

像这样:

  ...
  <div css={bubbleFadeLeft}>Case 1: I blink but not working!</div>
  <div css={bubbleFadeRight}>Case 2: I blink!</div>
  ...

这是一个有效的代码框

于 2020-02-12T07:55:54.383 回答