Javascript jQuery淡入淡出停止错误:jQuery(“.box”).stop().fadeIn();

Javascript jQuery淡入淡出停止错误:jQuery(“.box”).stop().fadeIn();,javascript,jquery,fade,Javascript,Jquery,Fade,这个代码不起作用,我做错了什么 特克斯 评论中的Dreas Grech是正确的。在对元素调用.stop()方法之前,需要检查该元素是否已设置动画。试试这个: function entraMouse() { jQuery(".Caja2:animated").stop();jQuery(".Caja2").fadeOut(); } function saleMouse() {jQuery(".Caja2:animated").stop();jQuery(".Caja2").fadeIn(); }

这个代码不起作用,我做错了什么

特克斯


评论中的Dreas Grech是正确的。在对元素调用.stop()方法之前,需要检查该元素是否已设置动画。试试这个:

function entraMouse() { jQuery(".Caja2:animated").stop();jQuery(".Caja2").fadeOut(); }
function saleMouse() {jQuery(".Caja2:animated").stop();jQuery(".Caja2").fadeIn(); }

评论中的Dreas Grech是正确的。在对元素调用.stop()方法之前,需要检查该元素是否已设置动画。试试这个:

function entraMouse() { jQuery(".Caja2:animated").stop();jQuery(".Caja2").fadeOut(); }
function saleMouse() {jQuery(".Caja2:animated").stop();jQuery(".Caja2").fadeIn(); }
在我看来,你想要一个盒子,当鼠标放在上面时它会淡出,当鼠标移开时它会重新出现。这实际上比最初看起来要复杂

调用
$().fadeOut()
时,发生的是jQuery设置淡入动画,然后在该元素上设置
display:none
。因为元素随后会从显示列表中删除,所以会触发mouseOut事件,这当然会开始fadeIn()效果。这将导致无限循环的
mouseIn
mouseOut
事件,只要您的鼠标悬停在该区域

您可能想尝试使用
$().fadeTo()
方法。在下面的示例中,我将在鼠标进入时将“不透明度”(opacity)属性设置为0.0,在鼠标离开时设置为1.0。因为元素从未真正隐藏(只是不可见),所以
mouseOut
事件能够正确触发

jQuery(document).ready(inicializarEventos);

function inicializarEventos() {
    $(".Caja2").hover(entraMouse, saleMouse);        
}

function entraMouse() {
    jQuery(this).fadeTo("slow", 0.0)
}

function saleMouse() {
    jQuery(this).fadeTo("slow", 1.0)
}
将来,我建议您解释一下为什么您认为“代码不起作用”。您需要定义期望代码如何运行,以及当前结果是什么。这将帮助我和其他人更好地了解如何回答您的问题。

在我看来,您希望有一个框,当鼠标放置在框上时,该框将淡出,当鼠标移开时,该框将重新出现。这实际上比最初看起来要复杂

调用
$().fadeOut()
时,发生的是jQuery设置淡入动画,然后在该元素上设置
display:none
。因为元素随后会从显示列表中删除,所以会触发mouseOut事件,这当然会开始fadeIn()效果。这将导致无限循环的
mouseIn
mouseOut
事件,只要您的鼠标悬停在该区域

您可能想尝试使用
$().fadeTo()
方法。在下面的示例中,我将在鼠标进入时将“不透明度”(opacity)属性设置为0.0,在鼠标离开时设置为1.0。因为元素从未真正隐藏(只是不可见),所以
mouseOut
事件能够正确触发

jQuery(document).ready(inicializarEventos);

function inicializarEventos() {
    $(".Caja2").hover(entraMouse, saleMouse);        
}

function entraMouse() {
    jQuery(this).fadeTo("slow", 0.0)
}

function saleMouse() {
    jQuery(this).fadeTo("slow", 1.0)
}

将来,我建议您解释一下为什么您认为“代码不起作用”。您需要定义期望代码如何运行,以及当前结果是什么。这将帮助我和其他人更好地了解如何回答您的问题。

除了jQuery和一些上下文之外,您能给出一些示例代码吗?当前在“.box”上执行的是什么效果?还有,您得到的错误是什么?使用该代码,您甚至在启动动画之前就停止了动画?我将整个代码放在下面。为了看看它是否有用,除了jQuery和一点上下文之外,您还可以给出一些示例代码吗?当前在“.box”上执行的是什么效果?还有,您得到的错误是什么?使用该代码,您甚至在启动动画之前就停止了动画?我将整个代码放在下面。为了查看它是否有用,我将最初的示例从使用$().animate方法更改为使用$().fadeTo方法。这将更好地处理跨浏览器的差异。我将最初的示例从使用$().animate方法更改为使用$().fadeTo方法。这将更好地处理跨浏览器差异。