【CSS】animationを使って流れるテキストとかを作ってみる
- 更新
- デザインのメモ



流れるテキスト
animationを使う。
動きの速度調整が少し難しい。
幅は指定する。
全体幅も明記してもいいが、しなくてもオッケー。
全体幅は6000pxぐらいになると大きなモニターで見ても問題ないかなと。
ウルトラワイドモニター対策が必要だったりする。
こんな感じでしょうか。
コードを見る(HTML・CSS)
HTML
<div class="loop-wrap">
<ul class="loop-area">
<li class="content">流れるテキスト</li>
<li class="content">流れるテキスト</li>
<li class="content">流れるテキスト</li>
<li class="content">流れるテキスト</li>
</ul>
<ul class="loop-area">
<li class="content">流れるテキスト</li>
<li class="content">流れるテキスト</li>
<li class="content">流れるテキスト</li>
<li class="content">流れるテキスト</li>
</ul>
<ul class="loop-area">
<li class="content">流れるテキスト</li>
<li class="content">流れるテキスト</li>
<li class="content">流れるテキスト</li>
<li class="content">流れるテキスト</li>
</ul>
</div>
CSS
/* ---------- 01 流れるテキスト ---------- */
.loop-wrap {
display: flex;
align-items: center;
overflow: hidden;
height: 50px;
background: #e8dc6a;
color: #2b2a27;
}
.loop-area {
display: flex;
animation: loop-slide 20s infinite linear 1s both;
list-style: none;
margin: 0;
padding: 0;
}
.loop-area .content {
width: 500px;
}
@keyframes loop-slide {
from {
transform: translateX(0);
}
to {
transform: translateX(-100%);
}
}
/* 動きを減らす設定のとき */
@media (prefers-reduced-motion: reduce) {
.loop-area { animation: none; }
}
背景をループにしたアニメーション
background-imgだとrepeatが使えるので簡単ですね。
コードを見る(HTML・CSS)
HTML
<div class="loop-wrap-bg">
<div class="loop-area-bg"></div>
</div>
CSS
/* ---------- 02 背景をループにする ---------- */
.loop-wrap-bg {
display: flex;
align-items: center;
overflow: hidden;
height: 130px;
}
.loop-area-bg {
background: url(https://125naroom.com/wp/wp-content/themes/design125naroom/img/kinoko_pan.png) repeat-x;
background-size: 130px 130px;
width: 100%;
height: 130px;
animation: loop-slide-bg 1.5s infinite linear;
}
@keyframes loop-slide-bg {
from {
background-position: 0 0;
}
to {
background-position: -130px 0;
}
}
/* 動きを減らす設定のとき */
@media (prefers-reduced-motion: reduce) {
.loop-area-bg { animation: none; }
}
対応ブラウザ
『animation』の対応ブラウザは下記サイトで確認できます。
IE対応は不要なので、『animation』は問題なく使えますね。
さいごに





