我试图解决这个问题但没有成功。我已经尝试了多个代码调整。
事情是。我得到一个div当div mouseenter()它会增加大小而css为另一个div会在延迟后改变。当mouseleave()时,它将全部设置为开头。一切正常。
问题是,当你在小于延迟时间的时间段内多次输入相同的div时(让我们说500毫秒内的2倍),它会显示内部div并让它看到,即使鼠标不在div中。
拜托,您能否建议让它成功实现?
这是一个工作小提琴有两种可能性,我使它工作,没有成功提到的问题。谢谢你的任何建议。
PS:已经尝试过if(){(div).width()> 110}也没有成功,它总是开放的
https://jsfiddle.net/spanwair/1xzvq55x/
$( ".levaruka" ).hover(function() {
$(".insidelevaruka").stop(true, true).each(function() {
setTimeout(function() {
$(".insidelevaruka, .e1").fadeIn();
}, 600);
});
$(this).css({"width": "350px", "height": "350px"});}, function() {
$(".insidelevaruka").css({"display":"none"});
$(this).css({"width": "100px", "height": "100px"});
$(".e1").stop(true, true).css({"display":"none"});
});
$(".pravaruka").mouseenter(function() {
$(".insidepravaruka").delay(600).fadeIn();});
$(".pravaruka").mouseleave(function() {
$(".insidepravaruka").hide();});
答案 0 :(得分:1)
https://jsfiddle.net/amke9jLh/
$( ".levaruka" ).hover(function() {
$(".insidelevaruka").attr("hover",1);
$(".insidelevaruka").finish(true, true).each(function() {
setTimeout(function() {
if($(".insidelevaruka").attr("hover")==1){
$(".insidelevaruka").fadeIn();
$(".e1").fadeIn();
}
}, 1000);
});
$(this).css({"width": "350px", "height": "350px"});
}
settimeout有时会触发延迟,因此在显示数据之前不会检查悬停是否仍然存在。
我在insidelevaruka上添加了一个属性。调用hover,设置为1并在第二部分重置
function() {
$(".insidelevaruka").attr("hover",0);
$(".insidelevaruka").css({"display":"none"});
$(this).css({"width": "100px", "height": "100px"});
$(".e1").stop(true, true).css({"display":"none"});
});
$(".pravaruka").mouseenter(function() {
$(".insidepravaruka").delay(600).fadeIn();
});
$(".pravaruka").mouseleave(function() {
$(".insidepravaruka").hide();
}
它现在似乎正常工作,请检查