爲什麼jQuery的.fadeIn()
功能打破了我的CSS懸停功能?當你將鼠標懸停在它上面時,我的div應該顯示它的菜單。當我的頁面顯示我要讓菜單淡入時,它應該有我的常規懸停功能。FadeIn()打破CSS懸停功能
這個JSFiddle很好地演示了這個問題。
它爲什麼會打破我的懸停功能,如何保持淡入和懸停功能?
注意我需要保持display: flex
以確保菜單div不包裝,如果它的寬度比其父div。
.widget {
position: relative;
width: 300px;
height: 300px;
background-color: #ddd;
}
.widget-menu {
width: 400px;
height: 100px;
background-color: #555;
position: absolute;
top: 0;
display: none;
}
.widget:hover .widget-menu {
display: flex;
/* used to ensure wrapping doesn't occur if the menu is wider than the widget container */
}
.widget:enabled .widget-menu {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="widget">
<div class="widget-menu">
<button>Btn 1</button>
</div>
<br/>
<br/>
<br/>
<br/>
<br/>
<p>Hover me to see menu appear. Then click the below button. Now my hovering is screwed up after the animation is complete.</p>
</div>
<br/>
<button>Fade In</button>
你想要達到什麼樣的目的?菜單在淡入時可見,所以當你將鼠標懸停在文本上時,它已經顯示出你喜歡的內容了嗎? – Roberrrt
@Roberrrt在頁面加載時菜單將淡入,以便用戶知道它在那裏。然後,第一次懸停和懸停/鼠標離開後,該菜單應該照常消失。現在不會發生這種情況 –
哦,發生這種情況是因爲jQuery爲您的元素添加了內聯樣式,否決了您的懸停 – Roberrrt