2つの矢印が繰り返し動くアニメーションをCSSで作ってみた

※当サイトにはプロモーションが含まれています。

前回、Photoshopを使って、このようなGIFアニメーションの矢印を作りました。

今回は、2つの矢印が繰り返し動くアニメーションCSSで作ってみました。

繰り返し動く矢印アニメーションのCSS

繰り返し動く矢印アニメーションのHTMLCSSです。

HTML

<div class="triangle-down-one"></div>
<div class="triangle-down-two"></div>

CSS

/* 上の矢印 */
.triangle-down-one {
width: 0;
height: 0;
border-left: 60px solid transparent;
border-right: 60px solid transparent;
border-top: 35px solid #ee0000;
position: relative;
animation: moveDownOne 1s infinite;
margin: 0 auto 10px;
}
@keyframes moveDownOne {
0% {
top: 0;
opacity: 1;
}
70% {
top: 15px;
opacity: 1;
}
80% {
top: 15px;
opacity: 0;
}
100% {
top: 0;
opacity: 0;
}
0% {
top: 0;
opacity: 1;
}
}

/* 下の矢印 */
.triangle-down-two {
width: 0;
height: 0;
border-left: 100px solid transparent;
border-right: 100px solid transparent;
border-top: 45px solid #dd0000;
position: relative;
animation: moveDownTwo 1s infinite;
animation-delay: 0.2s; /* 遅延処理 */
margin: 0 auto;
}
@keyframes moveDownTwo {
0% {
top: 0;
opacity: 1;
}
70% {
top: 15px;
opacity: 1;
}
80% {
top: 15px;
opacity: 0;
}
100% {
top: 0;
opacity: 0;
}
0% {
top: 0;
opacity: 1;
}
}

これを適用すると、こんな感じになります。

どうでしょう?

本当は、三角形を3つ並べたかったのですが、調整が面倒だったので諦めました・・・。

CSSについての補足説明

上記のCSSについて簡単に補足説明をします。

width: 0;height: 0;にして、要素のサイズをゼロにしています。

そして、border-leftborder-rightを透明な60pxのボーダーに設定し、border-topを35pxの赤いボーダーに設定することで、下向きの三角形を作成しています。

animation: moveDownOne 1s infinite;により、1秒間のアニメーションを無限に繰り返しています。

また、下の矢印である、triangle-down-oneクラスには、animation-delay: 0.2s;を設定しています。

そうする事によって、triangle-down-oneのアニメーション開始から0.2秒遅らせてアニメーションを開始しています。

これにより、2つの三角形が順番に表示され、上下に移動するアニメーションを実現しています。

以上、簡単な解説でした。

なお、コードが記載されているエディターの右上をクリックすれば、コードがコピーできますので、もしよかったらご活用ください。