テキストを1文字ずつ表示するアニメーションをCSSとJSで作る
記事内に商品プロモーションを含む場合があります
JavaScriptとCSSを使って、テキストを1文字ずつ表示するアニメーションを作ってみました。
テキストを1文字ずつ表示するアニメーションをCSSとJSで作る
1文字ずつアニメーションを付ける系は、1文字ずつspanで加工必要があります。
ただ、HTMLで毎回spanで囲うのはめんどくさいので、JavaScriptで自動でspanを追加します。
ではまずHTMLから
<div class="js-text-anime">Hello, World!</div>
class「js-text-anime」をつけることで、今回のアニメーションを追加できます。
続いてCSS。
CSSでは、初期の文字を隠す+表示までの時間を指定します。
「transition」の数字は自由に変更してください。
.js-text-anime span {
opacity: 0;
transition: 0.5s;
}
JavaScriptで、1文字ずつspanで囲うのと、表示するアニメーションを追加します。
文字と文字の表示までの時間は、コメント部分を変更することで変更可能です。
document.addEventListener("DOMContentLoaded", function (event) {
let elements = document.getElementsByClassName("js-text-anime");
for (let i = 0; i < elements.length; i++) {
animateText(elements[i]);
}
});
function animateText(element) {
let text = element.innerText;
element.innerText = "";
for (let i = 0; i < text.length; i++) {
var span = document.createElement("span");
span.innerText = text[i];
element.appendChild(span);
}
let spans = element.getElementsByTagName("span");
for (let j = 0; j < spans.length; j++) {
(function (index) {
setTimeout(function () {
spans[index].style.opacity = 1;
}, index * 200); // 遅延時間を調整したい場合はここの数値を変更してください
})(j);
}
}
ABOUT ME