2016-08-05 29 views
-2

Ich möchte eine Funktion 5 Sekunden nach dem Laden auftreten. Dann sollte diese Funktion den Wert eines div jede Sekunde ändern. Grundsätzlich hat die div eine Zahl, deren Wert ich will jede Sekunde erhöht, bis 100. Hier ist, was ich mit so weit gekommen sind:Erhöhung der Anzahl der Anzahl pro Sekunde?

div { 
 
    display:inline; 
 
}
<body onload="setTimeout(start,3000) ; setTimeout(end,3000) "> 
 
    <div id = number> 
 
    1 
 
    </div> 
 
    % 
 
    
 
    <script type="text/javascript"> 
 
    var i = 1; 
 
    
 
    setInterval(
 
    var a = (function start() { 
 
    i = i%100 + 1; 
 
    return i; 
 
    }); , 1000) 
 
    
 
    setInterval(
 
    var earth = document.getElementById('you'); 
 
    
 
    function end(){ 
 
    earth.innerHTML = a; 
 
    
 
    } 
 
    
 
    \t) 
 
    
 
    
 
    </script> 
 
</body>

Kein Glück so weit. Bitte sagen Sie mir, wo ich falsch gelaufen bin und korrigieren Sie es bitte. Eine Geige würde geschätzt werden: D.

+2

Hallo Pranav, können Sie dies bitte in einer Geige setzen und uns eine tragfähige Verbindung teilen sich die Funktionalität zu überprüfen? –

+0

Ihr Hauptproblem ist, dass Sie 'var' in Ihren Aufruf von' setInterval' setzen. – MegaTom

Antwort

4

sollten dies tun, was Sie fragen:

setTimeout(start, 5000); 
 

 
var i = 1; 
 
var num = document.getElementById('number'); 
 

 
function start() { 
 
    setInterval(increase, 1000); 
 
} 
 

 
function increase() { 
 
    if (i < 100) { 
 
     i++; 
 
     num.innerText = i; 
 
    } 
 
}
<div id="number">1</div>

+2

Antworten auf Fragen, die nur mit 'javascript' getaggt sind, sollten keine Frameworks enthalten. –

+0

@AdamAzad Fairer Punkt, ich entfernte die jQuery-Abhängigkeit. – TrampolineTales

1

Sie sollten setzen onload in Ihrem <body> Tag nicht.

Stattdessen verwenden Sie es in Ihrem JavaScript mit window.onload

0

es als Funktion Make

function myFunction() { 
    setTimeout(
     function() { 
     //stuff 
     }, 5000); 
} 

Dann führen Sie ihn aus onload

onload="myFunction();" 
1

Hier gehen Sie setTimeout für 5s Lücke nutzen, nach Verwenden Sie setInterval

var counter = 0; 
 
var div = document.getElementById('spinner'); 
 
setTimeout(function(){ 
 
    var st = setInterval(function(){ 
 
    div.innerHTML = ++counter; 
 
    if (counter > 100){ 
 
     clearInterval(st); 
 
    } 
 
    },1000) 
 
},5000);
<div id ="spinner"></div>

+0

Dies hat eine unendliche While-Schleife in Zeile 6 des Javascript. – TrampolineTales

Verwandte Themen