2013-03-28 118 views
1

我想創建一個簡單的JavaScript腳本,每500毫秒閃爍一次不同顏色的文本。我想到了這樣的東西,但它不起作用,它只是將文本打印成單一顏色(三種綠色,黑色或紅色中的一種)。感謝您的幫助每500毫秒閃爍一次不同顏色的文字javascript

<html> 
<body > 
<script> 

var f = function() { 
var str = "Hello World";; 
var d = new Date(); 
var n = d.getTime(); 
switch(n%3) 
    { 
    case 1: 
    fontcolor="green" 
    break; 
    case 2: 
    fontcolor="black" 
    break; 
    default: 
    fontcolor="red" 
    } 
document.write(str.fontcolor(fontcolor)); 
} 
setInterval(f, 500);  
</script> 
</body> 
</html> 
+0

你是說每次創建一個新的元素?或者爲單個文本元素交替一組顏色? – mirrormx

+0

我的意思是交替一組文本元素的顏色 – biggdman

回答

1

像這樣的東西(指意見,瞭解是怎麼回事嘗試):

// Wait until the document is ready 

window.onload = function() 
{ 
    // Create the element 

    var txt = document.createElement('span'); 

    txt.innerHTML = 'Hello World!'; 

    // Insert the element to the document 

    document.body.appendChild(txt); 

    // Alternate the colors 

    var colors = [ 'red', 'green', 'blue', 'black', 'yellow', 'pink' ]; 
    var current = 0; 

    setInterval(function() 
    { 
     // Update element's style with the new color 

     txt.style.color = colors[current]; 

     // Go to the next color 

     current = (current + 1) % colors.length; 

    }, 500); 
}; 
0

我剛纔運行它在fiddle,它似乎工作。它看起來就像它每500毫秒發生一次,計算機上每次通話之間的時間實際上可能是501毫秒(或其他一些3的除數),或者是其他3的除數。爲什麼不試試總計數器,這是最初爲0,然後加入d.getTime()%1000每一次,然後有一個價值3%

var a = 0; 
var f = function() { 
    var str = "Hello World";; 
    var d = new Date(); 
    var n = d.getTime(); 
    a = a + (n % 1000); 
    switch(a % 3) { 
     case 1: 
      fontcolor="green" 
      break; 
     case 2: 
      fontcolor="black" 
      break; 
     default: 
      fontcolor="red" 
    } 
    document.write(str.fontcolor(fontcolor)); 
} 
setInterval(f, 500); 
+0

對不起,我不小心編輯了你的帖子..我再次嘗試了代碼,但它不起作用,也許這是我執行它的方式。我只是將上面的代碼嵌入到html頁面中並將其顯示在本地主機服務器上 – biggdman