[解決済み] 目標数までカウントアップするjQueryカウンター
2022-03-10 05:50:54
質問
指定した速度で目標数までカウントしてくれるjQueryプラグインを既にご存知の方がいらっしゃれば教えていただきたいのです。
例えば、Googleの無料ストレージのMB数を見てみましょう。
Gmailホームページ
という見出しの下に、「たくさんのスペース」と書かれています。これは
<span>
タグがあり、1秒ごとにゆっくりとカウントアップしていきます。
似たようなものを探しているのですが、指定できるようにしたいのですが。
- 開始番号
- 終了番号
- 始点から終点までの所要時間。
- カウンタが終了したときに実行できるカスタムコールバック関数。
解決方法は?
結局、自分でプラグインを作りました。 これが誰かの役に立つかもしれないので、ここに紹介します。
(function($) {
$.fn.countTo = function(options) {
// merge the default plugin settings with the custom options
options = $.extend({}, $.fn.countTo.defaults, options || {});
// how many times to update the value, and how much to increment the value on each update
var loops = Math.ceil(options.speed / options.refreshInterval),
increment = (options.to - options.from) / loops;
return $(this).each(function() {
var _this = this,
loopCount = 0,
value = options.from,
interval = setInterval(updateTimer, options.refreshInterval);
function updateTimer() {
value += increment;
loopCount++;
$(_this).html(value.toFixed(options.decimals));
if (typeof(options.onUpdate) == 'function') {
options.onUpdate.call(_this, value);
}
if (loopCount >= loops) {
clearInterval(interval);
value = options.to;
if (typeof(options.onComplete) == 'function') {
options.onComplete.call(_this, value);
}
}
}
});
};
$.fn.countTo.defaults = {
from: 0, // the number the element should start at
to: 100, // the number the element should end at
speed: 1000, // how long it should take to count between the target numbers
refreshInterval: 100, // how often the element should be updated
decimals: 0, // the number of decimal places to show
onUpdate: null, // callback method for every time the element is updated,
onComplete: null, // callback method for when the element finishes updating
};
})(jQuery);
以下は使い方のサンプルコードです。
<script type="text/javascript"><!--
jQuery(function($) {
$('.timer').countTo({
from: 50,
to: 2500,
speed: 1000,
refreshInterval: 50,
onComplete: function(value) {
console.debug(this);
}
});
});
//--></script>
<span class="timer"></span>
JSFiddleでデモを見る。 http://jsfiddle.net/YWn9t/
関連
-
[解決済み] jQuery - 不正な呼び出し
-
[解決済み] jQueryがfadeOutで動作しない
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み] jQueryでテーブルの行を追加する
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】jQuery.addClassが動作しない。
-
[解決済み】jQuery: outer html() [重複]。
-
[解決済み】Ajaxクロスオリジンリクエストがブロックされました。同一生成元ポリシーがリモートリソースの読み取りを不許可にする
-
[解決済み】 .autocomplete is not a function Error
-
[解決済み] Bootstrap のカルーセルがスライドしない
-
[解決済み] 繰延べと約束
-
[解決済み] JQuery Fancyboxが動作しない
-
[解決済み] jQueryを使って下までスクロールさせる
-
[解決済み] jQuery Mobileのボタンを無効にする
-
[解決済み] jqueryでラジオボタンを検証する?