2012-08-11 227 views
1

可能重複之間:
jquery mouseleave issue when moving too slow慢jQuery的動畫()鼠標懸停()和鼠標離開()

似乎有mouseover()mouseleave()之間的延遲。 看着我的代碼有一個200ms/1ms過渡。 我只是不明白爲什麼兩個動畫之間存在滯後。

與使用最新版本的FF(14.0.1)17核心...

鏈接到開發站點: http://blox.comze.com/ (CSS目前僅在IE9 /鉻穩定/ FF)

的思考?

<div id="header"> 
    <div id="headerInner"> 
     <div id="power" class="menuitem"> 
      <img style="height:30px;" src="http://{url root=$context.root}static/img/leaf4.png" /> 
      <a class="menutext">&nbsp;POWER</a> 
     </div> 
     <div id="services" class="menuitem"> 
      <img style="height:30px;" src="http://{url root=$context.root}static/img/wrenchscrew.png" /> 
      <a class="menutext">&nbsp;SERVICES</a> 
     </div> 
     <div id="cashback" class="menuitem"> 
      <img style="height:30px;" src="http://{url root=$context.root}static/img/dollarsign.png" /> 
      <a class="menutext">&nbsp;CASHBACK</a> 
     </div> 
     <div id="schedule" class="menuitem"> 
      <img style="height:30px;" src="http://{url root=$context.root}static/img/calender.png" /> 
      <a class="menutext">&nbsp;SCHEDULE</a> 
     </div> 
    </div>  

</div> 

<script> 
$("#power,#services,#cashback,#schedule").mouseover(function() { 
    $(this).animate({ backgroundColor: "#333"}, 200); 
}).mouseleave(function() { 
    $(this).animate({ backgroundColor: "#000"}, 1); 
}); 
</script> 

回答

1

首先,您應該準備使用該文檔,因爲它只是讓所有內容都運行得更流暢。嘗試以下操作。

$(document).ready(function() { 
    $("#power,#services,#cashback,#schedule").hover(function() { 
     $(this).animate({ backgroundColor: "#333"}, 200); 
    }, function() { 
     $(this).animate({ backgroundColor: "#000"}, 1); 
    }); 
}); 

此外,鼠標時間非常快,這可能是您的問題。

+0

發現重複 http://stackoverflow.com/questions/4500321/jquery-mouseleave-issue-when-moving-too-slow – 2012-08-11 02:46:27

+0

和yea def好的做法準備好()只是拋出了一個快速的例子。 – 2012-08-11 02:50:07

+0

@DanKanze只是不要使用mousein和mouseout,這實際上只用於馬虎JavaScript的鏈接。 – 2012-08-11 02:53:06