こんにちはフロントエンドエンジニアのまさにょんです!
今回は、ReactでLoadingアニメーションのComponentを作成する方法について解説していきます。
目次
ReactでLoadingアニメーションのComponentを作成する方法
ReactでLoadingアニメーションのComponentを作成するために、今回は、次のようなSVGを使用します。
これをアニメーションで回転させていくようにすると、Loadingアニメーションが実装できます。
ReactでLoadingアニメーションのComponentのSampleCodeは、次のようになります。
/** @jsxImportSource @emotion/react */
import { css, keyframes } from "@emotion/react";
export const Loading = () => {
return (
<svg
width="48"
height="48"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
css={styles.circl}
>
<path
opacity="0.2"
fillRule="evenodd"
clipRule="evenodd"
d="M12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z"
fill="currentColor"
/>
<path
d="M2 12C2 6.47715 6.47715 2 12 2V5C8.13401 5 5 8.13401 5 12H2Z"
fill="currentColor"
/>
</svg>
);
};
const animations = {
rotateText: keyframes`
0% {
transform: rotate(360deg);
}
100% {
transform: rotate(0deg);
}
`,
};
const styles = {
circl: css({
animation: `1s linear infinite ${animations.rotateText}`,
}),
};
ポイントをまとめると次のとおりです。
transform
は CSS のプロパティで、与えられた要素を回転、拡大縮小、傾斜、移動することができます。- 今回は、
transform: rotate(deg);
で回転させています。
- 今回は、
keyframes
は、アニメーションの流れに沿ったキーフレーム(または中間地点)のスタイルを定義することによって、一連の CSS アニメーションの中間ステップを制御します。- アニメーションの中間ステップを
transition
よりも詳細に制御できるのが特徴です。transition
は、特定の CSS プロパティの値の間でスムーズな変化を作り出す方法を定義します。
- アニメーションの中間ステップを
JavaScript書籍 Ver. 中級-上級者向け
JavaScript書籍 Ver. 初級者向け
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!