我已經用HTML和jQuery構建了一個div容器,當你將鼠標懸停在上面時,另一個面板滑過頂部。但我正在體驗滑動面板「yoyo」。我認爲這是因爲當面板滑過div時,懸停狀態會被觸發然後丟失,因此面板會不斷彈出和停止。滑動面板在鼠標懸停時擺動
我想要發生的事情是,當你在面板上的任何地方盤旋時,當你不在廣場時,它不會。
這裏是一個小提琴,所以你可以看到問題是什麼,也許這是更容易解釋。
https://jsfiddle.net/xa5gtd2u/3/
而且這裏是代碼
HTML
<div class="container">
<div class="services-blocks">
<img class="alignnone size-full wp-image-1974" src="http://placehold.it/250x250" alt="Design" width="250" height="250" />
<h3>title here</h3>
</div>
<div class="services-slide-panel">
<h3>title here</h3>
Some text here
Some text here
Some text here
Some text here
</div>
</div>
CSS
.services-slide-panel {
background: #f3535e;
width: 100%;
position: absolute;
left: 0;
bottom: 0;
top: 0;
display: none;
color: #ffffff;
}
.services-slide-panel h3 {
color: #ffffff;
}
.services-blocks h3 {
text-align: center;
position: absolute;
bottom: 5%;
width: 100%;
color: #ffffff;
}
.container {
width: 250px;
height: 250px;
position: relative;
}
jQuery的
$(document).ready(function() {
$(".services-blocks").hover(function() {
$(this).next(".services-slide-panel").slideToggle("slow");
});
});
你應該嘗試動畫,而不是在這種情況下切換。第一個div會觸發第二個div的動畫。當用戶將鼠標移出時,第二個div會觸發。 – tintyethan
我同意@tintyethan。你應該看看jQuery [.stop()](https://api.jquery.com/stop/),特別是'.stop(true)',這樣反覆盤旋不會導致動畫重複運行。 –