Javascript 函数在调用另一个函数时不停止
我在为一件简单的事争吵 我有一个div,当点击时,一个胺化开始(一个无限循环的图像变化,模拟一个动画gif) 但是,当我单击另一个div时,第一个div需要停止,并只启动另一个动画,这将继续到每个动画(总共将是8个) 以下是一个图像循环的代码:Javascript 函数在调用另一个函数时不停止,javascript,jquery,html,animation,Javascript,Jquery,Html,Animation,我在为一件简单的事争吵 我有一个div,当点击时,一个胺化开始(一个无限循环的图像变化,模拟一个动画gif) 但是,当我单击另一个div时,第一个div需要停止,并只启动另一个动画,这将继续到每个动画(总共将是8个) 以下是一个图像循环的代码: var t1; var t2; var anim1 = new Array ('img/testes2/anim1_1.png','img/testes2/anim1_2.png'); var anim2 = new Array ('img/testes
var t1;
var t2;
var anim1 = new Array ('img/testes2/anim1_1.png','img/testes2/anim1_2.png');
var anim2 = new Array ('img/testes2/anim2_1.png','img/testes2/anim2_2.png');
var index = 1;
var verifica1 = 0;
var verifica2 = 0;
function rotateImage1(){
$('#imagemPrinc').fadeOut(0, function(){
$(this).attr('src', anim1[index]);
$(this).fadeIn(0, function(){
if (index == anim1.length-1){
index = 0;
}
else{
index++;
}
});
});
return false;
}
function stopTimer1(){
if(verifica1 = 1){
clearInterval(t2);
}
}
function muda1(){
if (verifica1 = 1){
//stopTimer2();
//$('#bgImagem').css({'background-image':'url(img/testes2/anim1_1.png)'});
t1 = setInterval(rotateImage1,500);
}
}
第二个动画的功能相同。
verifica变量和stopTimer函数,我尝试了一次停止,其他的播放,但似乎不起作用。这就是为什么它会对代码进行注释
查看正在运行的代码会更容易,仅此而已
可点击的div是这两个红色方块
有人能帮我吗
谢谢 clearTimeout将setInterval函数返回的计时器id作为参数(这里是t1) 您不应该使用持续时间为0的淡出和淡出,而应该只使用隐藏和显示 另外,您可以简化此块:
if (index == anim1.length-1){
index = 0;
}
else{
index++;
}
在
这是非常错误的:
if(verifica1 = 1){
这不是一个测试:它总是改变,而且总是正确的。您可能想要==
您的代码中是否有一个点是您(自愿)设置verifica1的?请再次阅读您的代码:您试图为clearTimeout函数提供一个函数(
clearTimeout(rotateImage2);
)而不是计时器id。您应该将其替换为clearTimeout(t2)代码>(假设其余的代码与我能读的代码相似)。我现在这样写:clearTimeout(t1)。。清除超时(t2)。。。。但没什么用…我只是用验证器让它停止循环。。。在绝望的时刻。。。rsrs
if(verifica1 = 1){