質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

解決済

ページスクロールで要素が近くに来たらカウントアップさせたい

melRel
melRel

総合スコア12

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

1回答

0リアクション

0クリップ

14046閲覧

投稿2018/11/08 13:01

編集2018/11/09 10:39

ページ内にある複数の要素を、カウントアップして指定の数値に来たらストップさせるものを作ったのですが、
ページスクロールで要素が近くに来たらカウントアップをスタートさせるように書き換えたところ、
カウントアップしている数字の表示がおかしくなり、
一瞬カウントダウンしてまたカウントアップしたりするようになってしまいました。

正常にカウントアップさせるにはどのようにしたらいいのか、ご教授お願いします。

html

<div class="count count-slow" data-num="80">00</div> <div class="count count-fast" data-num="20">00</div> <div class="count count-slow" data-num="99">00</div> <div class="count count-fast" data-num="8">0</div> <div class="count count-slow" data-num="5">0</div> <div class="count count-fast" data-num="40">00</div>

jQuery

$(window).on('load scroll', function(){ $('.count').each(function(){ var self = $(this), thisPosition = self.offset().top, scroll = $(window).scrollTop(), windowHeight = $(window).height(), countMax = self.attr('data-num'), thisCount = self.text(), countTimer; if (scroll >= thisPosition - windowHeight + windowHeight / 5){ if (self.hasClass('count-slow')) { var countSpeed = 600; } else if (self.hasClass('count-fast')) { var countSpeed = 30; } function timer(){ countTimer = setInterval(function(){ var countNext = thisCount++, addZero = ('0' + countNext).slice(-2); if (countMax > 10 && countNext < 10) { self.text(addZero); } else { self.text(countNext); } if (countNext == countMax){ clearInterval(countTimer); } }, countSpeed); } timer(); } }); });

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。