Менять каждую секунду цвет фона
НАписал функцию
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, время: 18:42. |