javascript
2013-03-26 86 views 1 likes 
1

我用下面的代碼想通了,我們可以不予我的HTML頁面的背景:的Javascript閃爍的背景色:何時停止閃爍,何時開始

<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> 

HTML頁面將永遠只使用此代碼閃爍。 但是,我們如何停止閃爍並再次開始閃爍?

我想在頁面收到一些協議命令時開始閃爍,並且當用戶按下頁面上的按鈕時停止閃爍。我們該怎麼做呢?

回答

2

的setInterval返回其可以用於禁用計時器的ID 。閱讀關於MDN https://developer.mozilla.org/en/docs/DOM/window.setInterval

<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> 

呼叫startBlinking文檔開始閃爍,stopBlinking停止它。看到它在行動http://jsfiddle.net/8D3KW/

+0

是否有timerInterval的任何初始值? – Coolguy 2013-03-26 10:03:29

+0

初始值將是'undefined'。如果你願意,你可以將它設置爲'null'。我也加了一個jsfiddle。你可以檢查一下。 – vdua 2013-03-26 10:05:28

0

將您的setInterval設置爲var,然後對其執行clearInterval

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

有一個在代碼中的錯誤。您需要將一個字符串或函數引用傳遞給setInterval,而不是返回未定義的函數調用。嘗試'setInterval(「定時器()」,500)'或'setInterval(定時器,500)' – vdua 2013-03-26 10:10:28

+0

哦,是的,忘了引號,謝謝你的擡頭 – 2013-03-26 10:12:48

+0

我的頁面上有幾個按鈕。有沒有辦法通過按任何一個按鈕來停止閃爍?我們如何檢測? – Coolguy 2013-03-26 10:45:42

0

保存在變量中間隔:

var interval = setInterval("Timer()", 500); 

可以使用該變量後面予以清除:

clearInterval(interval); 
1

使用本http://jsfiddle.net/9FUWu/ 你需要做的clearInterval和使用onclick

相關問題