1
$( ".menuicon" ).mouseenter(function() {
    $(this).animate({
       width: '100px'
    }, 300);
});

$( ".menuicon" ).mouseover(function() {
    $(this).animate({
       width: '36px'
    }, 300);
});

The icon's width changed to 100px on mouse hover, but soon comes back to 36px with the mouse still on it.

4

3 回答 3

3

您需要使用该mouseleave事件,而不是mouseover

$(".menuicon").mouseleave(function() {
    $(this).stop(true).animate({
        width: '36px'
    }, 300);
});

或者更好的是,结合使用整个东西hover

$(".menuicon").hover(
    function() { $(this).stop(true).animate({ width: '100px' }, 300); },
    function() { $(this).stop(true).animate({ width: '36px' }, 300); }
);
于 2013-10-09T11:55:31.330 回答
1

使用mouseleave()代替mouseover()像,

$( ".menuicon" ).mouseleave(function() {
    $(this).animate({
       width: '36px'
    }, 300);
});

或尝试hover() 之类的,

$( ".menuicon" ).hover(function() {
    $(this).animate({
       width: '100px'
    }, 300);
},function() {
    $(this).animate({
       width: '36px'
    }, 300);
});
于 2013-10-09T11:57:27.937 回答
0
$( ".menuicon" ).hover(function() {
    $(this).animate({
       width: '100px'
    }, 300);
},function() {
    $(this).animate({
       width: '36px'
    }, 300);
});
于 2013-10-09T13:01:18.773 回答