Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript闪烁背景色:何时停止闪烁,何时开始闪烁_Javascript - Fatal编程技术网

Javascript闪烁背景色:何时停止闪烁,何时开始闪烁

Javascript闪烁背景色:何时停止闪烁,何时开始闪烁,javascript,Javascript,通过使用下面的代码,我们可以使html页面的背景闪烁: <script type="text/javascript"> setInterval("Timer()", 500); var x=1; var set; function Timer() { set=1; if(x==0 && set==1) { document.bgColor='#00008B'; x=1; set=0; }

通过使用下面的代码,我们可以使html页面的背景闪烁:

<script type="text/javascript"> 
setInterval("Timer()", 500);
var x=1;
var set;
function Timer() 
{
    set=1;
    if(x==0 && set==1) {
        document.bgColor='#00008B';
        x=1;
        set=0;
    }
    if(x==1 && set==1) {
        document.bgColor='#FFFFFF';
        x=0;
        set=0;
    }
}
</script>

设置间隔(“计时器()”,500);
var x=1;
var集;
函数计时器()
{
set=1;
如果(x==0&&set==1){
document.bgColor='#00008B';
x=1;
set=0;
}
如果(x==1&&set==1){
document.bgColor='#FFFFFF';
x=0;
set=0;
}
}
仅使用此代码,html页面将永远闪烁。 但是,我们如何停止闪烁并再次开始闪烁呢


我想在页面收到一些协议命令时开始闪烁,当用户按下页面上的按钮时停止闪烁。我们怎么做?

将您的
设置间隔
分配给
变量
,然后对其执行
清除间隔

var timer = setInterval("Timer()", 500);
...
clearInterval(timer);

将间隔保存在变量中:

var interval = setInterval("Timer()", 500);
您可以使用此变量在以后清除它:

clearInterval(interval);

setInterval返回可用于禁用计时器的ID。阅读有关MDN的文档


var x=1;
var集;
函数计时器()
{
set=1;
如果(x==0&&set==1){
document.bgColor='#00008B';
x=1;
set=0;
}
如果(x==1&&set==1){
document.bgColor='#FFFFFF';
x=0;
set=0;
}
}
var timerInterval=null;
startBlinking=函数(){
if(timerInterval==null)
timerInterval=设置间隔(计时器,500);
}
停止闪烁=函数(){
if(timerInterval!==null){
清除间隔(timerInterval)
timerInterval=null
}
}
调用startBlinking开始闪烁,调用stopBlinking停止闪烁。在行动中查看它

使用此
您需要执行
clearInterval
并使用
onclick

是否有timerInterval的初始值?初始值将是
未定义的
。如果需要,可以将其设置为
null
。我还添加了一个jsfiddle。你可以检查一下。代码中有错误。您需要向setInterval传递字符串或函数引用,而不是返回未定义的函数调用。尝试
setInterval(“Timer()”,500)
setInterval(Timer,500)
我的页面上有几个按钮。有没有办法通过按下其中一个按钮来停止闪烁?如何检测?将计时器设置为全局变量,并使用按钮的onclick事件访问包含
clearInterval
命令的函数。我对不同的按钮具有不同的功能。是不是我必须在每个函数上都使用停止闪烁命令?是的,或者如果你想做的不仅仅是一个命令,那么就要使用从所有onclick函数调用的普通函数
<script type="text/javascript"> 

var x=1;
var set;

function Timer() 
{
    set=1;
    if(x==0 && set==1) {
        document.bgColor='#00008B';
        x=1;
        set=0;
    }
    if(x==1 && set==1) {
        document.bgColor='#FFFFFF';
        x=0;
        set=0;
    }
}

var timerInterval = null;

startBlinking = function() {
   if(timerInterval === null)
       timerInterval = setInterval(Timer, 500);
}

stopBlinking = function() {
    if(timerInterval !== null) {
        clearInterval(timerInterval)
        timerInterval = null
    }
}
</script>