あくまで自分用の覚え書きなので文章とか適当です...

Progressbar.js ライブラリを使用すると簡単にローディングアニメーションを作成できます。
Documentation はこちら

Progressbar.js であらかじめプログレスバーの形状として Line、Circle、SemiCircle のシェイプが用意されています。

オリジナルシェイプでアニメーションを作成

自前で用意したパスをシェイプとして利用する方法です。

1. SVGを作成する

イラストレーターで作成する場合は「線を中央に揃える」を選択。パスが途切れてしまう場合は少し端を重なるように作成し、SVGで書き出し。

2. SVG コードをHTMLに記述。

  • path を2回記述する。
  • 1つ目に stroke に描画される前のパスのカラーを設定する。
  • 2つ目に id を振っておく。

HTML

<div class="loading">
	<div id="js-loading-bar" class="loading__bar">
		<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300" viewBox="-0.813 -6.224 300 300" xml:space="preserve">
			<path fill="none" stroke="#f4f4f4" stroke-width="14.446" d="m190.492 100.013 92.36 13.42-66.832 65.145 15.775 91.987-82.608-43.428-82.609 43.428 15.776-91.987-66.832-65.145 92.361-13.42 41.304-83.692 41.305 83.692 2.592.377"/>
			<path id="js-star" fill="none" stroke="#FC3" stroke-width="14.446" d="m190.492 100.013 92.36 13.42-66.832 65.145 15.775 91.987-82.608-43.428-82.609 43.428 15.776-91.987-66.832-65.145 92.361-13.42 41.304-83.692 41.305 83.692 2.592.377"/>
		</svg>
	</div>
</div>

<div class="container">
	<p>ローディング後の画面</p>
</div>

jQuery の記述

var bar = new ProgressBar.Path('#js-star', {
	duration: 1000
});


bar.animate(1.0, function () { // 描画割合 1.0 = 100%
	$('.loading').delay(500).fadeOut(800);
});

余談

progressbar.js 工夫次第で面白いものが作れるかも。
Line シェイプ を使ってロゴを徐々に表示させるデモ

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です