我有这段代码:
var x;
x=jQuery(document);
x.ready(inicializarEventos);
function inicializarEventos()
{
var x;
x=jQuery(".Caja2");
x.hover(entraMouse,saleMouse);
}
function entraMouse()
{
jQuery(this).fadeOut();
}
function saleMouse()
{
jQuery(this).fadeIn();
}
问题在于,当我将鼠标移到盒子上时,它会开始逐渐淡入和淡出,直到停止鼠标移动为止。
如果我将鼠标移入和移出盒子的次数比褪色快几倍,那么其他不好的行为就会发生,它会一遍又一遍地保持效果。
当鼠标回到盒子上时,我需要一些可以停止动画的东西。
答案 0 :(得分:2)
关于第二个问题:
如果你的动画是“累积”,当你在框上运行鼠标时,你可以通过先调用stop()来解决这个问题。像这样:
jQuery(this).stop().fadeOut();
jQuery(this).stop().fadeIn();
答案 1 :(得分:1)
当你调用fadeOut()时,它最终会使项目完全不可见,这可能会触发 mouseOut 事件。
也许你可以使用非常低数字的fadeTo()方法,所以它不会消失:
function entraMouse()
{
jQuery(this).fadeTo("fast",0.01);
}
function saleMouse()
{
jQuery(this).fadeTo("fast",1.0);
}
答案 2 :(得分:0)
也许你可以有一个布尔变量让我们说它是“is_faded_out”并相应地设置为true或false?
答案 3 :(得分:0)
这可能是由于冒泡效应,让我们说你有一些div有一些内容:
< DIV> <跨度>你好< /跨度> < p为H.世界< / p为H. < / DIV>
然后,Hello跨度的悬停事件和世界paragrapgh被捕获在div的悬停事件监听器中。
答案 4 :(得分:0)
我遇到了类似的问题,并用以下方法解决了这个问题:
function entraMouse()
{
if (!jQuery(this).is(':hidden')) jQuery(this).fadeOut();
}
function saleMouse()
{
if (jQuery(this).is(':hidden')) jQuery(this).fadeIn();
}