div mouseenter() 或 hover()、delay()、fadeIn()、多个 div 条目少于延迟时间 jQuery
div mouseenter() or hover(), delay(), fadeIn(), multiple div entry in less than delay time jQuery
我正在尝试解决这个问题,但没有成功。我已经尝试过多次代码调整。
事情是。我得到一个 div 当 div mouseenter() 它会增加大小并且 css 对于另一个 div 会在延迟后改变。当 mouseleave().It 将全部设置为开始时。这一切都很好。
问题是,当您在小于延迟时间的周期内多次输入相同的 div(假设 500 毫秒内输入 2 次)时,它会显示内部 div 并保持可见状态,即使鼠标不在时也是如此div。
拜托,您能提出解决问题的可能性吗?
这是一个工作 fiddle 有 2 种可能性,我让它工作,但没有成功解决提到的问题。感谢您的任何建议。
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();});
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();
}
现在似乎可以正常工作了,请检查
我正在尝试解决这个问题,但没有成功。我已经尝试过多次代码调整。
事情是。我得到一个 div 当 div mouseenter() 它会增加大小并且 css 对于另一个 div 会在延迟后改变。当 mouseleave().It 将全部设置为开始时。这一切都很好。
问题是,当您在小于延迟时间的周期内多次输入相同的 div(假设 500 毫秒内输入 2 次)时,它会显示内部 div 并保持可见状态,即使鼠标不在时也是如此div。
拜托,您能提出解决问题的可能性吗?
这是一个工作 fiddle 有 2 种可能性,我让它工作,但没有成功解决提到的问题。感谢您的任何建议。
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();});
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();
}
现在似乎可以正常工作了,请检查