Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery弹出窗口在快速鼠标切换时闪烁_Javascript_Jquery_Html_Popup_Hover - Fatal编程技术网

Javascript jQuery弹出窗口在快速鼠标切换时闪烁

Javascript jQuery弹出窗口在快速鼠标切换时闪烁,javascript,jquery,html,popup,hover,Javascript,Jquery,Html,Popup,Hover,在缓慢的鼠标进入和离开转换中,弹出窗口可以顺利工作。但在快速转换时,有时会闪烁,有时会在div元素上完全停止显示 jQuery中的代码: var flag = 1; jQuery('#hover').mouseenter(function(){ jQuery('#popup').show(); }); jQuery('#popup').mouseenter(function(){ flag = 0; jQuery('#popup').show(); }); jQue

在缓慢的鼠标进入和离开转换中,弹出窗口可以顺利工作。但在快速转换时,有时会闪烁,有时会在div元素上完全停止显示

jQuery中的代码:

var flag = 1;

jQuery('#hover').mouseenter(function(){
    jQuery('#popup').show();
});

jQuery('#popup').mouseenter(function(){
    flag = 0;
    jQuery('#popup').show();
});

jQuery('#popup').mouseleave(function(){
    flag = 1;
    jQuery('#popup').hide();
});

jQuery('#hover').mouseleave(function(){
    setTimeout(function() { if (flag == 1) jQuery('#popup').hide();}, 400);
});
下面是一个工作示例:

如何修复


提前谢谢

这个问题实际上不是Javascript问题。它正在执行你要它执行的命令。最好只是在div中设置动画,使其感觉平滑

最简单的方法是使用jqueryanimate

var flag = 1;
jQuery('#hover').mouseenter(function(){
    jQuery('#popup').stop().show('fast');
});

jQuery('#popup').mouseenter(function(){
    flag = 0;
    jQuery('#popup').stop().show('fast');
});

jQuery('#popup').mouseleave(function(){
    flag = 1;
    jQuery('#popup').stop().hide('fast');
});

jQuery('#hover').mouseleave(function(){
    setTimeout(function() { if (flag == 1) jQuery('#popup').stop().hide('fast');}, 400);
});
不过,更好的方法是使用
opacity
属性进行CSS转换