调用另一个函数时不会停止
Function not stopping when calling another one
我对一件简单的事情感到困扰。
我有一个div,点击时,一个胺化开始(图像变化的无限循环,模拟动画gif)。
但是,当我单击另一个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/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);
}
}
第二个动画的相同功能。验证变量和 stopTimer 函数,我试图让一个停止,另一个播放,但似乎不起作用。这就是它在代码上注释的原因。
查看正在运行的代码会更容易,所以就是这样---这里---可点击的div是那两个红色方块。
有人可以帮我!?
谢谢!
clearTimeout 将 setInterval 函数返回的计时器 id 作为参数(这里是 t1)。
不应使用持续时间为 0 的淡出和淡入,而应仅使用隐藏和显示。
顺便说一句,您可以简化此块:
if (index == anim1.length-1){
index = 0;
}
else{
index++;
}
在
index = [(index+1)%anim1.length];
这是非常错误的:
if(verifica1 = 1){
这不是一个测试:它总是改变验证1并且总是正确的。你可能想要==。
您的代码中是否有(自愿)设置 verifica1 的点?
相关文章:
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在另一个函数中使用变量this
- 在另一个函数成功结束后调用该函数
- 使用JS函数来使用另一个函数的语法?node.js
- 嵌套到另一个函数中的Fancybox函数;不起作用
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- 如何在不预定义的情况下将javascript函数传递到另一个函数中
- 从另一个函数获得$this值
- 如何记录调用另一个函数的函数的返回值
- 它在另一个函数中嵌套后不会输出文本
- 如何将自动完成的值传递到另一个函数中
- 将一个函数作为参数传递给javascript中的另一个函数
- 从另一个函数延迟解析的返回
- Javascript:OnChange事件,将数组变量传递给另一个函数
- 通过引用Javascript中的另一个函数来传递对象方法
- 将变量值传递给另一个函数
- 运行“;非“;单击另一个函数中的函数仅一次
- 用javascript将参数从一个函数传递到另一个函数
- 如何在另一个函数完成后运行