Javascript 使用jQuery.stop()仅停止.fadeTo()效果

Javascript 使用jQuery.stop()仅停止.fadeTo()效果,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我的网页上有两个jQuery效果,一个是。我使用animate()将其左右移动,当鼠标不在上方时,我使用fadeTo()将其淡出 我想使用jQuerystop()函数来防止鼠标在上快速来回移动时出现多重衰减效果,如下所示: $("myDiv").stop().fadeTo(speed, opacity, callback); 不幸的是,如果我这样做,它也会停止我的动画,这是我永远不想要的。如果我启动动画,我总是希望它完成。我怎样才能做到这一点,同时防止闪烁衰减问题呢 我注意到这一点: 从jQu

我的网页上有两个jQuery效果,一个是
。我使用
animate()
将其左右移动,当鼠标不在
上方时,我使用
fadeTo()
将其淡出

我想使用jQuery
stop()
函数来防止鼠标在
上快速来回移动时出现多重衰减效果,如下所示:

$("myDiv").stop().fadeTo(speed, opacity, callback);
不幸的是,如果我这样做,它也会停止我的动画,这是我永远不想要的。如果我启动动画,我总是希望它完成。我怎样才能做到这一点,同时防止闪烁衰减问题呢

我注意到这一点:

从jQuery1.7开始,如果第一个参数作为字符串提供,则只有该字符串表示的队列中的动画才会停止

这似乎是解决我问题的办法!或者至少在我试图找出如何将
fadeTo
效果分配给一个命名队列之前是这样。通过使用中指定的选项参数,我可以很容易地了解如何使用
animate()
。但这看起来并没有什么可比性。但这很奇怪,因为我可以在
fadeIn()
fadeOut()
fadeToggle()的文档中看到指定此选项的功能。但是为什么不使用
fadeTo()

我是不是遗漏了什么?还是有其他方法来实现我想要的



编辑:下面是我的代码的简化版本,以帮助说明我的问题

<div id="div1">
    <div id="div2">
        <div id="div3">
            <div id="div4">
            </div>
        </div>
    <button id="myButton" onclick="doACoolAnimation()" ></button>
    </div>
</div>
我的
fadeElementTo()
函数非常简单:

function fadeElementTo(eid, speed, opacity, callback) {
    $("#" + eid).stop().fadeTo(speed, opacity, callback);
}
单击“我的”按钮时,只需向左或向右移动按钮,即可设置与褪色相同的
div
动画

function doACoolAnimation() {
    var hiddenState = GLOBAL_VAR.hiddenState;

    // If the <div> is already hidden, make it visible
    if (hiddenState == null || hiddenState == 1) {
        GLOBAL_VAR.hiddenState = 0;
        $("#div1").animate({
            left: "0px"
        }, 1500);
    }
    // Otherwise, hide it
    else {
        GLOBAL_VAR.hiddenState = 1;
        $("#div1").animate({
            left: "-800px"
        }, 1500);
    }
}
函数doACoolAnimation(){
var hiddenState=全局变量hiddenState;
//如果已隐藏,请使其可见
如果(hiddenState==null | | hiddenState==1){
全局变量hiddenState=0;
$(“#div1”)。设置动画({
左:“0px”
}, 1500);
}
//否则,把它藏起来
否则{
全局变量hiddenState=1;
$(“#div1”)。设置动画({
左:“-800px”
}, 1500);
}
}

您可以尝试使用带有queue:false的animate函数来设置不透明度的动画,而不是在悬停时使用fadeTo函数

function fadeElementTo(eid, speed, target-opacity) {
    $("#" + eid).animate({opacity: target-opacity}, {duration: speed, queue: false});
}

请显示问题代码。@RokoC.Buljan-Done。这里有点重复:@ChrisA-是的,我在发布我的问题之前看到了这个问题。不过,正如我所提到的,我已经知道如何使用队列来停止动画效果。我想知道的是如何使用它们来阻止褪色效果。我觉得肯定有办法,因为
stop()
函数可以同时停止动画和淡入淡出效果。我的问题不是重复!这项研究解决了一个不同的问题。在投票结束之前,请仔细阅读我的问题!我明确指出,使用
stop()
停止动画与使用
stop()
停止淡入淡出效果(仅淡入淡出效果)是不同的问题。
function fadeElementTo(eid, speed, target-opacity) {
    $("#" + eid).animate({opacity: target-opacity}, {duration: speed, queue: false});
}