jQuery在mouseover和mouseout时设置动画
我有以下代码,它将鼠标上方的jQuery在mouseover和mouseout时设置动画,jquery,Jquery,我有以下代码,它将鼠标上方的DIV块向下移动了20px: $('.outerDiv').mouseover(function() { $(this).animate({marginTop: "+=20px",},500); }); $('.outerDiv').mouseout(function() { $(this).animate({marginTop: "-=20px",},500); }); div内部包含另一个div。问题在于,当鼠标位于
DIV块向下移动了20px:
$('.outerDiv').mouseover(function()
{
$(this).animate({marginTop: "+=20px",},500);
});
$('.outerDiv').mouseout(function()
{
$(this).animate({marginTop: "-=20px",},500);
});
div内部包含另一个div
。问题在于,当鼠标位于内部div
上方时,会发生鼠标移出事件,并且div
块会上移20px
。我想知道,如果鼠标仅位于外部div
之外,是否有办法仅触发mouseout事件
以下是HTML结构:
<div class='outerDiv'>
<div class='innerDiv'>
bla bla bla
</div>
</div>
呜呜呜呜
您需要使用and,而不是mouseover和mouseout,当在子元素上触发时,mouseover和mouseout会冒泡到父元素
这是一篇摘自《圣经》的文章
当指针移动到子元素中时,mouseover也会触发,
而mouseenter仅在指针移动到边界时激发
元素
正如j08691所建议的,您可能只想使用它,因为该方法绑定了mouseenter和mouseleave事件的处理程序 您需要使用and,而不是mouseover和mouseout,当在子元素上触发时,它们会冒泡到父元素
这是一篇摘自《圣经》的文章
当指针移动到子元素中时,mouseover也会触发,
而mouseenter仅在指针移动到边界时激发
元素
正如j08691所建议的,您可能只想使用它,因为该方法绑定了mouseenter和mouseleave事件的处理程序 试试这个:
var baseMargin = 20;
$('.item').hover(function() {
$(this).stop().animate({marginTop: (baseMargin+20)+'px'}, 500);
},
function() {
$(this).stop().animate({marginTop: (baseMargin-20)+'px'}, 500);
});
示例:尝试以下方法:
var baseMargin = 20;
$('.item').hover(function() {
$(this).stop().animate({marginTop: (baseMargin+20)+'px'}, 500);
},
function() {
$(this).stop().animate({marginTop: (baseMargin-20)+'px'}, 500);
});
示例:发布HTML结构,它将被清除您在=20px”之后有一个额外的逗号,
发布HTML结构,它将被清除您在=20px”之后有一个额外的逗号,
您不是指mouseenter和mouseleave吗?我也会用hover()来代替。你是说mouseenter和mouseleave吗?我也会使用hover()来代替。