JavaScriptテックラボ

animate.jsを使ってテキストアニメーション

animate.jsを使ってテキストアニメーションを使ったのでその備忘録。元ネタはtobiasahlin.comのMOVING LETTERSというスクリプトで、jQueryを使わないように変更した。

CodePen: https://codepen.io/zionboogie/pen/RqQmVE

See the Pen anime.js テキストのレターリングアニメーション by jun (@zionboogie) on CodePen.

HTML
<h1 class="title">JavaScript講座</h1>
CSS
.title {
  font-weight: 900;
  font-size: 3.5em;
}

.title .char-animation {
  display: inline-block;
  line-height: 1em;
}
JavaScript
// テキストを囲うボックス
let box_class = "title";
// 分割後のテキストを囲うボックス
let char_class = "char-animation";

// テキストを囲うボックスの取得(複数可能)
let item = document.querySelectorAll("." + box_class);
// ボックス毎の処理
for (var i = 0; i < item.length; i++) {
	// 文字の分割
	item[i].innerHTML = item[i].innerText.replace(/[^\x00-\x80]|(\w)/g, "$&");
}

// アニメーション
anime.timeline({loop: true})
	.add({
		targets: '.' + char_class,
		scale: [4,1],
		opacity: [0,1],
		translateZ: 0,
		easing: "easeInExpo",
		duration: 500,
		delay: function(el, i) {
			return 60*i;
		}
	}).add({
		targets: '.' + box_class,
		opacity: 0,
		duration: 1000,
		easing: "easeInExpo",
		delay: 1000
	});

関連記事