2017-05-09 1 views
1

Ich habe eine jQuery-Nummer Zähler, der gut funktioniert, aber es läuft, sobald die Seite geladen wird. Was ich zu tun versuche, ist herauszufinden, wie man es zum Laufen bringt, wenn das Element in Sicht kommt? Dies ist meine aktuelle Markuprun jQuery Nummer Zähler auf Bildlauf

EDIT

Haben Sie den gewünschten Effekt mit Wegpunkten. Aktualisiert jQuery unter

$('#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

Mögliche Duplikat verwenden [Auslösen jquery Ereignis, wenn ein Element auf dem Bildschirm erscheint] (http://stackoverflow.com/questions/3045852/triggering-jquery-event-when-an-element-anzeigen-on-screen) –

+0

Danke für den Link, der mir geholfen hat, meine Frage zu beantworten. Ein einfacher Wegpunkt hat es sortiert. Habe meinem ursprünglichen Beitrag mein neues Markup hinzugefügt. – rufus

+0

Großartig, aber bitte bearbeite die Antworten nicht in deinen Fragen. Fügen Sie entweder den korrigierten Code als tatsächliche Antwort hinzu oder (wahrscheinlich am besten hier) [Akzeptieren Sie das Duplikat] (https://meta.stackexchange.com/questions/250922/can-we-clarify-to-the-op-that-their - Frage-ist-noch-nicht-geschlossen-und-das-Duplikat/250930 # 250930). –

Antwort

1

können Sie diese Funktion

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)); 
} 

Als Erscheinen auf this answer

+0

Bitte beantworten Sie keine Fragen mit einer kopierten Antwort von einem Duplikat. Kennzeichnen Sie stattdessen die Frage als ein Duplikat der Frage, in der Sie die Antwort gefunden haben. –

+0

Ich wusste nicht, dass ich bereits kennzeichnen kann, aber in diesem Fall denke ich, dass die Fragen nicht genau die gleichen sind, wie das OP auf der anderen Frage mit Ajax arbeitet und hier ist das OP nicht –