Javascript 当我将动画效果包装到函数中时,它将停止工作。谁能告诉我为什么?
我将css和javascript复制到JSFIDLE中,但我不知道在html中放什么,不管怎样,我正试图让一个图像脉冲,问题是它只定义为一个类,我遇到了麻烦。当我把它单独作为它自己的函数时,它工作得很好,但是当我把它包装在一个不可见的函数中,或者不管它叫什么,动画就停止了。这与我制作一个类的动画有关吗?有没有办法把它定义为一个对象,这会有帮助?感谢$document.readyfunction{是jquery在页面完全加载后延迟任何代码执行的方式 如果将这部分代码包装到函数中,它将不再工作,并且只有在调用函数时才会调用代码。这就是为什么包装代码时它不工作的原因 有关$document.ready的良好用法,请参见中的定义函数a而不是实际调用它的部分 如果您稍微更改代码并将一个传递给document.ready而不是传递一个匿名函数,您应该会发现它可以工作:Javascript 当我将动画效果包装到函数中时,它将停止工作。谁能告诉我为什么?,javascript,jquery,class,animation,attr,Javascript,Jquery,Class,Animation,Attr,我将css和javascript复制到JSFIDLE中,但我不知道在html中放什么,不管怎样,我正试图让一个图像脉冲,问题是它只定义为一个类,我遇到了麻烦。当我把它单独作为它自己的函数时,它工作得很好,但是当我把它包装在一个不可见的函数中,或者不管它叫什么,动画就停止了。这与我制作一个类的动画有关吗?有没有办法把它定义为一个对象,这会有帮助?感谢$document.readyfunction{是jquery在页面完全加载后延迟任何代码执行的方式 如果将这部分代码包装到函数中,它将不再工作,并且
function A(){
if (1 == 1){
function pulsate() {
$(".image2_template").
animate({opacity: 0.1}, 1500, 'linear').
animate({opacity: 1}, 1500, 'linear', pulsate);
}
pulsate();
} else {
$('.image2_template').animate({
opacity: 0,
});
$('.text3_template').animate({
opacity: 0,
});
}
}
$(document).ready(A);
您正在声明一个函数a,但没有调用该函数
(function(){
...
})()
这将创建一个匿名函数,这就是您正在寻找并执行它的术语。我不确定您为什么需要在本例中包装它,$document.ready应该足够了
关于JSFIDLE用法的旁注:
在JSFIDLE中,您可以从框架下拉列表中选择onDomReady而不是onLoad,以自动将javascript包装在$document.ready中,从而使对$document.ready的调用变得多余。onLoad选项将其包装在$window.load中
如果您选择no wrap,那么jsfiddle将仅使用必要的脚本标记将其包围,然后根据所选选项将其放在头部或身体中