我的演示:http://jsfiddle.net/x01heLm2/排除懸停從觸發父母的孩子
我想微型縮略圖,當我從.box
(目標1)懸停仍然會出現,但我不想觸發懸停事件如果用戶將鼠標懸停在點擊區域(目標2)上。我將懸停事件綁定到父級,這是.box
,它實現了目標1,但堅持實現目標2。
如果用戶首先將鼠標懸停在點擊區域上,如何不觸發懸停事件?
\t $(document).ready(function() {
\t $('.box').not('.box .box-lower').hover(function() {
\t $(this).find('.productsThumbWrap').stop(true, true).animate({
\t "margin-top": "+=108px"
\t }, "normal");
\t $(this).find('.productsThumbWrap img').stop(true, true).css({
\t opacity: 1,
\t 'transition': 'opacity 0.3s ease 0.35s'
\t });
\t }, function() {
\t $(this).find('.productsThumbWrap').stop(true, true).css({
\t 'margin-top': '92px'
\t });
\t $(this).find('.productsThumbWrap img').stop(true, true).css({
\t opacity: 0,
\t 'transition': 'none'
\t });
\t });
\t });
.box {
width: 100%;
height: auto;
min-height: 290px;
margin-bottom: 30px;
border: 5px solid #000
}
.orange {
background: orange
}
.box-lower {
background: red;
height: 80px;
}
.box-upper {
position: absolute;
}
.productsThumbWrap {
text-align: center;
margin-top: 92px;
}
.productsThumbWrap img {
padding: 14px 6px;
display: inline;
opacity: 0;
}
.click {
width: 100%;
height: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="col-lg-6">
<div class="box">
<div class="box-upper">
<img src="http://placehold.it/398x200" />
</div>
<div class="productsThumbWrap">
<img src="http://placehold.it/80x80" />
<img src="http://placehold.it/80x80" />
<img src="http://placehold.it/80x80" />
<img src="http://placehold.it/80x80" />
</div>
<div class="box-lower">
<button class="click">Click</button>
</div>
</div>
</div>
由於內部填充了內容,因此無法首先觸發點擊區域。因此,在進入點擊區域之前,您已經觸發了父項的懸停。爲什麼不只爲此使用CSS? – LcSalazar 2014-09-29 15:04:05
如果將鼠標移動到按鈕上(同時展開),您是否希望展開的視圖仍然展開?還是應該由此擴大? – Snellface 2014-09-29 15:04:53
爲什麼點擊區域需要是盒子的孩子?當鼠標移動到點擊區域時,點擊區域將移動到.productsThumbWrap所在的位置,換句話說,它很難點擊......除非懸停僅在box-upper上激活。然後將鼠標移動到大拇指會移動鼠標下方的點擊區域。 – Wayne 2014-09-29 15:14:46