Bri*_*riz 0 javascript toggle intervals
我正在使用JS通过打开和关闭它们来动画两个图像.我有一个初始图像,当动画打开时,它出现在屏幕上并保持打开状态.然后将具有较高z值的第二图像设置为在与第一图像相同的位置中每1秒打开和关闭,因此看起来两者是交替的.
我正在使用window.setInterval使第二个图像闪烁,但是当我需要关闭动画时(我从屏幕上删除两个图像),我的window.clearInterval不是"正常工作"第一个图像将是走了,但第二个每秒都在眨眼.
码:
function notebookNotification(setting)
{
$("#lightNotificationContainer").show();
var notificationAnimation = window.setInterval('$("#darkNotificationContainer").toggle()', 1000);
if(setting == 0)
{
window.clearInterval(notificationAnimation);
$("#lightNotificationContainer").hide();
$("#darkNotificationContainer").hide();
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都明白为什么它不起作用?
在线之间阅读,我想你所说的是:
notebookNotification(1);
并开始动画notebookNotification(0);
与该动画还没有停止.我的猜测是你要notebookNotification(0)
禁用闪烁.
为此,您需要对此功能进行大量修改.您需要将intervalID
来自setInterval
变量的变量存储在此函数范围之外的变量中,并且可以clearInterval
在后续调用此函数时使用.
例如:
var intervalID;
function notebookNotification(setting)
{
if(setting == 0)
{
if(intervalID) {
window.clearInterval(intervalID);
intervalID = null;
}
$("#lightNotificationContainer").hide();
$("#darkNotificationContainer").hide();
}
else
{
$("#lightNotificationContainer").show();
if(!intervalID) {
intervalID = window.setInterval('$("#darkNotificationContainer").toggle()', 1000);
}
}
}
Run Code Online (Sandbox Code Playgroud)