Менять каждую секунду цвет фона
НАписал функцию
function mig() { var x = Number(document.getElementById("setMig").innerHTML); var y = 0; function red_white() { if ( y < x ) { var y=y + 1; function red() { document.bgColor = red; setTimeout(white(), 1000); } function white() { document.bgColor = white; setTimeout(red_white(), 1000); } } } } И HTML <input type="text" name="setMig"> <input type="submit" onClick="mig()" value="Подтвердить"> Нужно чтобы ты вводиш значение в текстовое поле (например 10), нажимаеш на кнопу и задний фон меняет 10 раз цвет фона с красного на белый. Не могу найти ошибку в коде, он не работает. Помогите, заранее спасибо! |
Цитата:
Цитата:
setTimeout(white, 1000); И Цитата:
setTimeout(red_white, 1000); |
спасибо, но все равное не работает,может дело не в синтаксисе а в логике? что делать
|
Цитата:
Цитата:
|
http://learn.javascript.ru/play/38hZ8b
<!DOCTYPE HTML> <html> <head></head> <body> <input id="mig" type="text"> <input onclick="setMig()" type="button" value="SET"> <script> var mig = document.getElementById('mig'), body = document.body || document.getElementsByTagName('body')[0], migInt; function setMig() { var n = +mig.value, f; if(!n) return; if(migInt) clearInterval(migInt); migInt = setInterval(function() { body.bgColor = (f ^= 1) ? '#FF0000' : '#FFF'; if(!--n) { clearInterval(migInt); migInt = null; } }, 1000); } </script> </body> </html> |
Еще вариант
<!DOCTYPE HTML> <html> <head></head> <body> <input id="mig" type="text" value="10"> <input onclick="setMig()" type="button" value="SET"> <script> var setMig = function () { var quantity = +document.getElementById('mig').value, body = document.body || document.getElementsByTagName('body')[0]; quantity && blink(body, quantity, 'red'); }, blink = function (element, quantity, color) { var i = 0, quantity = quantity * 2, animTimer = setInterval(function () { element.bgColor = element.bgColor ? '' : color; ++i == quantity && clearTimeout(animTimer); }, 500); }; </script> </body> </html> |
Часовой пояс GMT +3, время: 09:46. |