2016-08-05 64 views
-2

我想要一個函數在onload後發生5秒。然後,該函數應該每秒更改一個div的值。基本上,div有一個數字,我想它的價值增加每一秒,直到100這裏是我想出迄今:每秒增加數量?

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>

至今沒有運氣。請告訴我我哪裏出錯了,並糾正它請。小提琴將不勝感激:D。

+2

Pranav你好,能否請你把這個在小提琴和分享我們一個可行的鏈接查看的功能? –

+0

你的主要問題是你在'setInterval'的調用中放了'var'。 – MegaTom

回答

4

這應該做你問什麼:

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

只有'javascript'標記的問題的答案不應包含框架的使用。 –

+0

@AdamAzad公平點,我刪除了jQuery的依賴。 – TrampolineTales

1

你不應該把onload<body>標籤。

相反,在你的JavaScript中使用它window.onload

0

讓它作爲一個功能

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

然後執行它的onload

onload="myFunction();" 
1

在這裏你去使用setTimeout爲5秒的差距,後即使用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

這有一個無限的while循環在Javascript的第6行。 – TrampolineTales