みなさんこんにちは!
このブログの記事の更新は久しぶりですね。
レイアウトの調整はちょこちょこ行っていましたが...
最近まで、社会と資格試験と戦っておりましたw
プラスでコロナでのストレス...
だいぶ疲れが溜まってきてます...
コロナだけでも早く収まって、ストレスから解放されたいです。
さて話も変わりまして、今回は、HTML5ではなくなった「marquee」タグをvue(Nuxt)で実装してみたので、記事にしてみました!
本ブログの「ブログトップページ」に実装したものを加えましたので、実際の動きを確認したい方はリンク先へ!
「marquee」タグとは?
そもそも「marquee」タグとは何?と思う方もいらっしゃるかも知れません。
(私も実装する前まで、知りませんでしたw)
よく電車の入り口付近にある、文字がスクロールする電光掲示板のようなものが作りたかったので、調べていたら
「marquee」タグにたどり着きました。
「marquee」は文字や画像などを上下左右にスクロールさせたい場合に利用するみたいですね。
HTMLクイックリファレンスを参照してみると、
Internet Explorerが独自で開発したタグで、HTML4までは使えますが、
HTML5ではタグが廃止されているみたいで、代わりにCSSを使って実装するみたいです。
「marquee」を実装できるライブラリはあるのか?
調べてみたら、結構ありました。
- https://github.com/megasanjay/vue3-marquee
- https://github.com/EvodiaAut/vue-marquee-text-component/
- ect
ライブラリはありましたが、今回はCSSを使って実装してみたいと思います。
また、Vueの「transition」タグを利用しようかとも考えましたが、
どうやら、CSS「animation-iteration-count: infinite;」のように、繰り返しができないみたいなので、
タグの利用は諦めました...
ですので、ほとんどCSSのみで「marquee」タグのような動きを実装しています。
CSSにて実装
以下、CSS実装内容です。
p.marquee-text {
margin: 0;
padding-left: 100vw;
display: inline-block;
white-space: nowrap;
animation-name: marquee;
animation-timing-function: linear;
animation-duration: 5000ms;
animation-iteration-count: infinite;
}
@keyframes marquee {
from {
transform: translate(0%);
}
99%,
to {
transform: translate(-100%);
}
}