2013-03-28 5 views
1

Я пытаюсь создать простой скрипт javascript, который будет мигать текстом разного цвета каждые 500 мс. Я думал о чем-то подобном, но он не работает, он просто печатает текст одним цветом (один из трех зеленых, черных или красных). Спасибо за любую помощьFlash-текст с разным цветом на каждые 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-страницу и отображаю его на сервере localhost – biggdman

Смежные вопросы