我的目標是將一個元素懸停在網頁上,在這種情況下是一個li標籤,導致主圖像與另一個元素交換。當鼠標懸停在li標籤上時,備用圖像將可見。備用圖像在鼠標離開li標籤後的n秒內保持可見。直到備用圖像在n秒後交換回主圖像時,纔會再次觸發初始懸停操作。如何避免與計時器的鼠標事件衝突
我到目前爲止的搜索引導我到: Detect IF hovering over element with jQuery。 我從Meligy 分叉的的jsfiddle以及與此想出了:
var $sample = $("#sample");
var $main = $("#main");
var $alt = $("#alt");
$alt.hide();
setInterval(function() {
if ($sample.is(":hover")) {
$main.hide();
$alt.show();
} else {
setInterval(function(){
$alt.hide();
$main.show();
},3000);
}
}, 200);
此外,jQuery on hover animation fires multiple times 和使用FC的的jsfiddle想出了這恰好是驚人地接近。
var $hover = $("#hover");
var $main = $("#main");
var $alt = $("#alt");
$alt.hide();
$hover.hover(
function() {
$alt.stop(true, true).show();
$main.stop(true, true).hide();
},
function() {
$main.stop(true, true).show(2000);
$alt.stop(true, true).hide(2000);
});
到目前爲止,我最近的事情低於 但也有少數徘徊後的圖像撲來回失控。
var $hover = $("#hover");
var $main = $("#main");
var $alt = $("#alt");
$alt.hide();
$hover.hover(function() {
if ($main.is(":visible")) {
$main.hide();
$alt.show();
}
}, function() {
setInterval(function() {
// Also attempted $main.is(":hidden")
if ($main.not(":visible")){
$alt.hide();
$main.show();
}
}, 3000);
});
謝謝大家。
通訊jsfiddles: FIRST --https://jsfiddle.net/dsbarnes/89jd73kx/2/ - SECOND - https://jsfiddle.net/dsbarnes/g66jfwfj/1/ - THIRD - - https://jsfiddle.net/dsbarnes/m18voLeL/3/ 總得有10代表超過2鏈接... – Snipe