WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
文字をランダムな順番で表示
今回は、HTML内の文字(1文字ずつの <span>
)をランダムな順番でふわっと表示させるアニメーションの実装方法をご紹介します。
キャッチコピーや目立たせたいコンテンツに動きをつけることが可能です。
サンプルHTML
<div id="random-anime">
<span>ラ</span>
<span>ン</span>
<span>ダ</span>
<span>ム</span>
<span>な</span>
<span>順</span>
<span>版</span>
<span>で</span>
<span>表</span>
<span>示</span>
</div>
サンプルJS
<script>
document.addEventListener("DOMContentLoaded", () => {
const container = document.getElementById("random-anime");
if (!container) return;
const spans = Array.from(container.querySelectorAll("span"));
function shuffle(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
const shuffledSpans = shuffle(spans);
shuffledSpans.forEach((span, i) => {
span.style.opacity = "0";
span.style.display = "inline-block";
span.style.transition = "opacity 0.6s ease, transform 0.6s ease";
span.style.transform = "translateY(10px)";
setTimeout(() => {
span.style.opacity = "1";
span.style.transform = "translateY(0)";
}, i * 40); // 50msごとにランダムに実行
});
});
</script>