2017-05-09 4 views
1

jQueryナンバーカウンターは素晴らしいですが、ページが読み込まれるとすぐに実行されます。私がしようとしているのは、要素が見えるようになると、その要素を実行させる方法を考え出すことです。これは私の現在のマークアップスクロールでjQueryナンバーカウンターを実行

EDIT

は、ウェイポイントを使用して所望の効果を手に入れています。

$('#counter').waypoint(function (direction) { 
 
    $('.count').each(function() { 
 
     var $this = $(this); 
 
     jQuery({ 
 
     Counter: 0 
 
     }).animate({ 
 
     Counter: $this.text() 
 
     }, { 
 
     duration: 2000, 
 
     easing: 'swing', 
 
     step: function() { 
 
      $this.text(Math.ceil(this.Counter)); 
 
     } 
 
     }); 
 
    }); 
 
    }, { 
 
    offset: '80%' 
 
    });
#counter { 
 
     position: relative; 
 
     color: #fff; 
 
     margin-top: 600px; 
 
    } 
 
    
 
    .counters { 
 
     padding: 100px 0; 
 
     width: 33.333%; 
 
     float: left; 
 
    } 
 
    
 
    #counter-1 { 
 
     background: #393939; 
 
    } 
 
    
 
    #counter-2 { 
 
     background: #494949; 
 
    } 
 
    
 
    #counter-3 { 
 
     background: #595959; 
 
    } 
 
    
 
    .line-numbers { 
 
     text-align: center; 
 
     display: block; 
 
     font-size: 55px; 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<section id="counter"> 
 
     <div id="counter-1" class="counters"> 
 
      <span class="line-numbers count">2000</span> 
 
     </div> 
 
     <div id="counter-2" class="counters"> 
 
      <span class="line-numbers count">2500</span> 
 
     </div> 
 
     <div id="counter-3" class="counters"> 
 
      <span class="line-numbers count">150</span> 
 
     </div> 
 
     </section>

+2

可能な複製(上でこの機能が示すように

function isScrolledIntoView(elem) { var docViewTop = $(window).scrollTop(); var docViewBottom = docViewTop + $(window).height(); var elemTop = $(elem).offset().top; var elemBottom = elemTop + $(elem).height(); return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); } 

を使用することができますhttp://stackoverflow.com/questions/3045852/triggering-jquery-event-when-an-element-appears-on-screen) –

+0

その質問にリンクしてくれてありがとうございました。シンプルなウェイポイントでソートされました。元の投稿に新しいマークアップを追加しました。 – rufus

+0

素晴らしいですが、あなたの質問に対する回答を編集しないでください。訂正されたコードを実際の回答として追加するか、(恐らく最も良いと思われる)[重複を受け入れる](https://meta.stackexchange.com/questions/250922/can-we-clarify-to-the-op-that-their未確認ではありません.250930#250930)。 –

答えて

1

の下のjQueryを更新しましたあなたはthis answer

[要素が画面に表示されたときにjqueryのイベントをトリガ]の
+0

複製された回答を複製して質問に回答しないでください。代わりに、答えを見つけた質問の重複として質問にフラグを立てます。 –

+0

私はすでにフラグを立てることはできませんでしたが、この場合、質問はAjaxで動作している別の質問のOPとまったく同じではないと思います。ここでOPは –

関連する問題