отключение своей функции
есть функция off, которая выполняется бесконечным циклом при загрузке страницы, как ее отключить при вызове функции start?
|
disgraceful,
есть такие вещи как setInterval и clearInterval :) для примера:
<script>
i = 0;
var interval = setInterval('func()', 1000);
function func(){
document.getElementById('span').innerHTML = i;
i++;
}
function off(){
clearInterval(interval);
}
</script>
<input type='button' value='Off' onclick='off()'>
<span id='span'></span>
|
а на примере данного кода?
<html> <head> <title> </title> <style type="text/css"> button{height:10%; color:yellow; background-color:black; position:absolute; cursor:pointer;} </style> <script laguage=javascript> function off() {setTimeout(yellowmig1, 1000) setTimeout(yellowmig2, 2000) setTimeout(off, 3000) } function red() { var aobj=document.getElementById("red");aobj.style.opa city="1.0"; } function yellowmig1() { aobj=document.getElementById("yellow");aobj.style. opacity="1.0"; } function yellowmig2() { aobj=document.getElementById("yellow");aobj.style. opacity="0.4"; } function green() { var bobj=document.getElementById("red");bobj.style.opa city="0.4"; aobj=document.getElementById("green");aobj.style.o pacity="1.0"; } function green1() { aobj=document.getElementById("green");aobj.style.o pacity="0.4"; } function green2() { aobj=document.getElementById("green");aobj.style.o pacity="1.0"; } function start() { setTimeout(red, 5000) setTimeout(yellowmig1, 10000) setTimeout(yellowmig2, 11000) setTimeout(yellowmig1, 12000) setTimeout(yellowmig2, 13000) setTimeout(yellowmig1, 14000) setTimeout(yellowmig2, 15000) setTimeout(yellowmig1, 16000) setTimeout(yellowmig2, 17000) setTimeout(yellowmig1, 18000) setTimeout(yellowmig2, 19000) setTimeout(green, 20000) setTimeout(green1, 21000) setTimeout(green2, 22000) setTimeout(green1, 23000) setTimeout(green2, 24000) setTimeout(green1, 25000) setTimeout(yellowmig1, 26000) setTimeout(yellowmig2, 31000) setTimeout(start, 27000) } </script> </head> <body onload=off()> <img src="fon.jpg" height=80% style="z-index:0"> <img src="red.png" width=12% height=25% style="z-index:1; position:absolute;left:8%; top:3%; opacity:0.4" Id="red"> <img src="yellow.png" width=12% height=25% style="z-index:1; position:absolute;left:8%; top:28%; opacity:0.4" Id="yellow"> <img src="green.png" width=12% height=25% style="z-index:1; position:absolute;left:8%; top:53%; opacity:0.4" Id="green"> <button style="top:30%;" onclick="start()">Включить</button> </body> </html> |
я не очень понял суть ну ладно вот так надо сделать:
<html>
<head>
<title>
</title>
<style type="text/css">
button{height:10%; color:yellow; background-color:black; position:absolute; cursorointer;}
</style>
</head>
<body onload=off()>
<img src="fon.jpg" height=80% style="z-index:0">
<img src="red.png" width=12% height=25% style="z-index:1; position:absolute;left:8%; top:3%; opacity:0.4" Id="red">
<img src="yellow.png" width=12% height=25% style="z-index:1; position:absolute;left:8%; top:28%; opacity:0.4" Id="yellow">
<img src="green.png" width=12% height=25% style="z-index:1; position:absolute;left:8%; top:53%; opacity:0.4" Id="green">
<button style="top:30%;" onclick="clearInterval(ofInter);start()">Включить</button>
<script type='text/javascript'>
var red = document.getElementById('red');
var yellow = document.getElementById('yellow');
var green = document.getElementById('green');
function off()
{
setTimeout(yellowmig1, 1000)
setTimeout(yellowmig2, 2000)
}
off();
ofInter = setInterval('off()', 3000);
function red()
{
red.style.opacity="1.0";
}
function yellowmig1()
{
yellow.style.opacity="1.0";
}
function yellowmig2()
{
yellow.style.opacity="0.4";
}
function green()
{
red.style.opacity="0.4";
green.style.opacity="1.0";
}
function green1()
{
green.style.opacity="0.4";
}
function green2()
{
green.style.opacity="1.0";
}
function start()
{
setTimeout(red, 5000)
setTimeout(yellowmig1, 10000)
setTimeout(yellowmig2, 11000)
setTimeout(yellowmig1, 12000)
setTimeout(yellowmig2, 13000)
setTimeout(yellowmig1, 14000)
setTimeout(yellowmig2, 15000)
setTimeout(yellowmig1, 16000)
setTimeout(yellowmig2, 17000)
setTimeout(yellowmig1, 18000)
setTimeout(yellowmig2, 19000)
setTimeout(green, 20000)
setTimeout(green1, 21000)
setTimeout(green2, 22000)
setTimeout(green1, 23000)
setTimeout(green2, 24000)
setTimeout(green1, 25000)
setTimeout(yellowmig1, 26000)
setTimeout(yellowmig2, 31000)
setTimeout('start()', 27000)
}
</script>
</body>
</html>
|
Dim@,
:yes: Лучше эту длинноту сделать функцией с вызовом массива двух переменных, тады укоротицо все
array=[
yellowmig1,yellowmig2,yellowmig1,yellowmig2,yellowmig1,
yellowmig2,yellowmig1, yellowmig2,yellowmig1,yellowmig2,
green,green1,green2,green1,green2,green1,yellowmig1,
yellowmig2,start() ]
function SetArray (array,index){
if(index<array.length){index++
setTimeout(function () {array[index];SetArray (array,index)}, 1000)
}}SetArray (array,-1)
|
Deff,
:yes: :thanks: |
| Часовой пояс GMT +3, время: 19:03. |