Javascript 退出全屏时如何停止图像间隔?
从全屏退出时,我试图停止间隔。但我没能做到。与此非常相似。我建议您按照上面的答案,倾听Javascript 退出全屏时如何停止图像间隔?,javascript,Javascript,从全屏退出时,我试图停止间隔。但我没能做到。与此非常相似。我建议您按照上面的答案,倾听fullscreenchange事件,而不是使用间隔来检测全屏退出 但是,如果确实要执行间隔,则可以使用代码来清除它: function move_img(){ if(paused){ paused = false; timerId = setInterval(() => disImg(), 800); if (miser.requestFullscreen) {
fullscreenchange
事件,而不是使用间隔来检测全屏退出
但是,如果确实要执行间隔,则可以使用代码来清除它:
function move_img(){
if(paused){
paused = false;
timerId = setInterval(() => disImg(), 800);
if (miser.requestFullscreen) {
miser.requestFullscreen();
} else if (miser.mozRequestFullScreen) { /* Firefox */
miser.mozRequestFullScreen();
} else if (miser.webkitRequestFullscreen) { /* Chrome, Safari & Opera */
miser.webkitRequestFullscreen();
} else if (miser.msRequestFullscreen) { /* IE/Edge */
miser.msRequestFullscreen();
}
}else{
paused = true;
clearInterval(timerId); // stop the clock
}
}
这是正确的。但是,我建议不要使用全局变量,即:
timerId = setInterval(() => disImg(), 800);
clearInterval(timerId); // stop the clock
但关键是,您正在正确地清除间隔,因此如果仍在调用disImg
,则它可能来自其他地方,或者您的clearInterval
未被到达
如果是这样的话,我建议添加
console.log
行来尝试并调试它为什么不可用。我无法解释它。我想做的是:它以正常方式停止。当我用ESC退出全屏时,我单击它开始移动的按钮,它会继续,我想在退出全屏时停止。我希望我能表达我自己:)老实说,我是从技术角度看,不清楚您试图实现什么。我所能说的是,如果您想使用间隔,您的想法是正确的,但我建议使用事件处理方法。其余的取决于您的特定“停止”代码,不管它是什么。
const timerId = setInterval(() => disImg(), 800);