Javascript闪烁背景色:何时停止闪烁,何时开始闪烁
通过使用下面的代码,我们可以使html页面的背景闪烁: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; }
<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>