円に沿って移動するCSSアニメーションサンプル
文字列や画像などのHTML要素が円枠、円縁に沿って移動するCSSアニメーションを紹介しています。
円に沿って移動するCSSアニメーション
円の縁に沿って周りながら移動するCSSアニメーションサンプルになります。
円も描画していますが、要素の移動に必要なものではありませんので、無くても大丈夫です。
See the Pen CSS | Arc move animation by yochans (@yochans) on CodePen.
HTML
HTMLにはコンテナとして親要素class名「.container」を作成、その中に円の枠になる「.circle」と回転する要素「.item」を設置しています。
<div class="container">
<div class="circle"></div>
<div class="item"></div>
</div>
円、要素ともにpositionプロパティを使って絶対値で配置しています。
また、ともに起点は円の中心点になっています。
円の半径(CSSでの指定は直径)と、回転する要素のtranslate()に指定する値は同じ値になります。
円の位置は、回転する要素の位置の4分の1としておけば多分合うと思います。
アニメーションキーフレームの内容は最初のrotate()とtranslate()で回転、2つ目のrotate()で要素の角度といった感じです。
回転させている要素も丸くしてしまったのでわかりませんが、回転している要素の角度は固定されています。
回転に合わせて角度も変更したい場合はrotate()を触れば可能です。
.container {
position: relative;
width: 100%;
height: 250px;
}
.circle {
position: absolute;
top: 25px;
left: 25px;
width: 200px;
height: 200px;
border-radius: 50%;
border: solid 1px #808080;
}
.item {
position: absolute;
top: 100px;
left: 100px;
width: 50px;
height: 50px;
border-radius: 50%;
background: #4169e1;
transform: translateX(-100px);
animation: circle-move-anim 4s linear infinite;
/* for text */
display: flex;
justify-content: center;
align-items: center;
font-size: 30px;
color: #FFF;
}
@keyframes circle-move-anim {
0% {
transform: rotate(0deg) translateX(-100px) rotate(0deg);
}
100% {
transform: rotate(360deg) translateX(-100px) rotate(-360deg);
}
}
ディスカッション
コメント一覧
まだ、コメントがありません