数値をカウントアップやカウントダウンのアニメーションを簡単に行うことができるプラグインのご紹介です。data属性で指定できて簡単そうなものを選びましたがすでに3年前のものですね。同じ名前のプラグインがありますがこちらの方が使いやすかったので選びました。あまり有名ではなさそうです。ですが機能は豊富でいろいろと使えそうです。
以下は同じようなカウントアニメーションができるタイプのものです。countUp.jsが有名どころでしょうか。
1.まずjQueryを読み込ませます
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
2.プラグインを読み込ませます
<script src="build/jquery.countTo.js"></script>
3.カウントさせたい指定要素とdata属性で数値を設定するだけ
<div class="my-element" data-to="50">0</div>
<script>
$('.my-element').countTo();
</script>
上記は0から50までカウントアップをアニメーションするようになります。
このプラグインを使用する主な方法は、DOMのdata属性と、countTo関数のオプションの2つです。
これらの2つの方法は、ミックスして使用することもできます。 data属性はJSオプションよりも優先されます。
以下の例はdata属性のdata-fromはスタート値でdata-toはゴール値になります。25から始まって150までカウントを行います。
<div class="timer1" data-from="25" data-to="150">25</div>
<script>
$('.timer1').countTo();
</script>
以下のように記載しても同じことになります。jsオプション方法になります。
<div class="timer1"></div>
<script>
$('.timer1').countTo({
from: 25,
to: 75
});
</script>
以下の場合は3秒後にスタートし、0から100までを5秒でカウントアップします。
<div class="timer2" data-from="0" data-to="100" data-speed="5000" data-refresh-interval="3000">0</div>
<script>
$('.timer2').countTo();
</script>
以下の例は0から500までをカウントアップします。
<div class="timer3">0</div>
<script>
$('.timer3').countTo({
from: 0,
to: 500
});
</script>
1秒後にスタートして50から2500までを3秒でカウントします。コールバック関数例。
<div class="timer4">50</div>
<script>
$('.timer4').countTo({
from: 50,
to: 2500,
decimals:1,
speed: 10000,
refreshInterval: 1000,
formatter: function (value, options) {
return value.toFixed(options.decimals);
},
onUpdate: function (value) {
console.log(this);
},
onComplete: function (value) {
console.log(this);
}
});
</script>
200からカウントダウンして0になったら最後にcomplete!!!を表示させます。
<div class="timer5">200</div>
<script>
$('.timer5').countTo({
from: 200,
to: 0,
speed: 10000,
refreshInterval: 1000,
onComplete: function (value) {
$(this).text('complete!!!').addClass('text-danger');
}
});
</script>
0から100までをカウントアップします。
<div class="timer-a" data-to="100">0</div>
<script>
// 100までカウントする
$(".timer-a").countTo();
</script>
0から9.8までを3秒かけてカウントアップ、小数点第2位を表示
<div class="timer-b" data-from="0" data-to="9.8" data-speed="3000" data-decimals="2">0</div>
<script>
$(".timer-b").countTo();
</script>
0から3968までを10秒かけてカウントアップ、1000の位にカンマ
<div class="timer-c" data-to="3968" data-speed="10000">0</div>
<script>
$('.timer-c').countTo({
formatter: function (value, options) {
return value.toFixed(options.decimals).replace(/\B(?=(?:\d{3})+(?!\d))/g, ',');
}
});
</script>
10から1までを10秒間でカウントダウン
<div class="timer-d" data-from="10" data-to="1" data-speed="10000">10</div>
<script>
$(".timer-d").countTo();
</script>
0から1000までカウントアップするが完了後さらに1000が追加され2000までカウントする
<div class="timer-e" id="infinity" data-from="0" data-to="1000" data-speed="5000">0</div>
<script>
$('.timer-e').countTo({
onComplete: function (value) {
$(this).countTo({
from: value,
to: value + 1000
});
}
});
</script>
上記と同じサンプルは以下から確認できます。
()はdata属性
このプラグインは、主に状態を変更するための機能もサポートしています。関数は、名前を文字列としてcountTojQuery関数に渡すことで呼び出されます $(‘#timer’).countTo(‘stop’)
参考になれば幸いです。
∞Tadashi Suyama∞
あまりcgiは使いたくないのですが使わざるを得ない時があります。仕方なく設置するのですがエラーが出ちゃうんです。なんか知らないけど。 ありがちなのがパーミッションとかパスが問題になるんのですけど...
19 Feb 2022
今回はワードプレス専用のアドレス変更方法をご紹介します。ワードプレスのアドレスはwordpress@~という形で送られてきますが変更可能です。 functions.phpに記載するのですがプラグ...
12 Feb 2022
Sassの遷移は多すぎる今日この頃 Ruby Sass→LibSass→DartSass(いまここ) Ruby SassはSassの最初の実装でしたが、2019年3月26日にサポートが終了しま...
22 Jan 2022
明けましておめでとうございます。 本年も何卒よろしくお願いいたします。 年末年始は雪でしたね、そこまで積もっていませんが。 {% include adsensearticle.html...
10 Jan 2022
最近はjQueryよりvueで書いた方が楽ではないかと思い学習中です。 そもそもVuejsはドキュメントが日本語対応なので試しやすいし情報も豊富なので学習しやすいです。 3大フレームワークと呼...
02 May 2021
ウェブエンジニアの須山のブログです。
WEBに関することや個人的に関心のあることについて書きます。主に技術系ブログです。