0
我有一个组成菜单的10个图标列表。默认情况下,第一个图标比其他图标大,表明它处于活动状态。当用户将鼠标悬停在另一个图标上时,第一个图标会缩小,另一个会增长,如果鼠标悬停在外,第一个图标会再次返回到其大(活动)状态。jquery防止不必要的动画
问题是,如果你快速悬停其他图标,第一个会试图增长,从而导致它看起来像在晃动。有没有办法阻止这种情况发生?这是一个测试页面我设置:http://recoverstudio.com/icon_menu/
的jQuery:
$("#icon_one").width(76).height(76).css({ 'top' : '-15px', 'left' : '-15px'});
$(".icon").hover(function(){
$(this).stop().css({'z-index':10}).animate({top: -15, left: -15, height: 76, width: 76}, 75);
$("#icon_one").stop(true).animate({top: 0, left: 0, height: 45, width: 45}, 75);
},
function(){
$(this).stop().css({'z-index':1}).animate({top: 0, left: 0, height: 45, width: 45}, 75);
$("#icon_one").stop(true).animate({top: -15, left: -15, height: 76, width: 76}, 75);
});
CSS:
img {
border: 0;
}
ul li {
float:left;
list-style:none;
padding: 0 15px 0 0;
height: 45px;
width: 45px;
}
ul li a img {
display: block;
height: 45px;
position: relative;
width: 45px;
}
HTML:
<ul>
<li><a href="#"><img src="icon_one.png" id="icon_one" class="icon" /></a></li>
<li><a href="#"><img src="icon_two.png" id="icon_two" class="icon" /></a></li>
<li><a href="#"><img src="icon_three.png" id="icon_three" class="icon" /></a></li>
<li><a href="#"><img src="icon_four.png" id="icon_four" class="icon" /></a></li>
<li><a href="#"><img src="icon_five.png" id="icon_five" class="icon" /></a></li>
<li><a href="#"><img src="icon_six.png" id="icon_six" class="icon" /></a></li>
<li><a href="#"><img src="icon_seven.png" id="icon_seven" class="icon" /></a></li>
<li><a href="#"><img src="icon_eight.png" id="icon_eight" class="icon" /></a></li>
<li><a href="#"><img src="icon_nine.png" id="icon_nine" class="icon" /></a></li>
<li><a href="#"><img src="icon_ten.png" id="icon_ten" class="icon" /></a></li>
</ul>
非常感谢马特。这工作完美! – downtomike 2010-09-20 16:06:27