在以下代碼中,.mouseover()
部分可以正常工作,但在.mouseleave()
部分被觸發時會發生一些有趣的事情。例如,'.step_details'
的不透明度未被重置。我試圖同時使用.animate()
和.css()
將不透明度重置爲0,但沒有成功。任何想法爲什麼這可能是?爲什麼不在.mouseleave()事件上改變不透明度?
$('.step').mouseover(function() {
$(this).css({'border': 'solid #CCC 1px', 'background-color': '#FFF'})
.animate({'margin-top': '0', height: '300px'}, 500);
$(this).children('.step_details').css('display', 'block')
.animate({opacity: 1},700);
})
$('.step').mouseleave(function() {
$(this).css({'border': 'none', 'background-color': 'inherit'})
.animate({'margin-top': '150px', height: '150px'}, 200);
$(this).children('.step_details').css({'display': 'none', 'opacity': 0});
})
而且,存在邊界/背景的復位和復位上邊距和'.step'
高度動畫的開始之間不一致的延遲。這似乎意味着不透明問題可能只是我濫用.mouseleave()
事件觸發器的一個症狀。我究竟做錯了什麼?有更好的方法我應該這樣做嗎?
感謝您的閱讀!
這將是巨大的,如果你可以創建一個最小[小提琴](被處理http://jsfiddle.net/)/[bin](http://jsbin.com)。 –
嘗試。 .mouseout()代替 – gamehelp16
'.mouseleave()'很好,.mouseout()'不會有所作爲 – Popnoodles