jquery删除闪烁

时间:2010-11-05 22:47:36

标签: jquery hover blink

阻止在.hover()

上闪烁

以下是完整示例 - http://jsfiddle.net/xBEjQ/

如何解决此问题?

鼠标离开较小的块(.image),而不是.popup阻止后,应删除 UPD:弹出窗口

4 个答案:

答案 0 :(得分:6)

更新问题:由于鼠标事件不会发生在较小的元素上(它完全重叠),您必须使用第三个​​ {{1}像这样:

<div>

并添加此CSS(请注意<div class="block"> <div class="popup"></div> <div class="popup upper"></div> <div class="image"></div> </div> 高于其他z-index):

.popup

和要匹配的脚本:

.upper { width: 100px; height: 100px; z-index: 41; }

You can test it out here


对于上一个问题:由于弹出窗口位于元素顶部,因此请在弹出窗口上使用触发器mouseenter上的mouseleave,如下所示:

$(".block .image").mouseenter(function(){
    console.log($(this).siblings(".popup").length);
  $(this).siblings(".popup").show();
});
$(".block .upper").mouseleave(function(){
  $(this).siblings(".popup").andSelf().hide();
});

You can test it here

答案 1 :(得分:1)

更新了您的jsfiddle:http://jsfiddle.net/xBEjQ/6/

<强> HTML

<div class="block">
    <div class="popup"></div>
    <div class="image"></div>
</div>

<强>的jQuery

$(".block .image").mouseover(function(){
    $(this).parent().find(".popup").show();
});

$(".block .popup").mouseout(function() {
    $(this).hide();
});

<强> CSS

.block { position: relative; width: 400px; height: 400px; background: #ccc; }
.popup { display: none;
    position: absolute; left: 0; top: 0; width: 200px; height: 200px; background: #eee; z-index: 40; }
.image { position: relative; width: 100px; height: 100px; background: #aaa; z-index: 30;

答案 2 :(得分:1)

在鼠标悬停时显示弹出窗口 隐藏popover

的鼠标输出上的弹出窗口

http://jsfiddle.net/generalhenry/WkH6q/

答案 3 :(得分:0)

$(".block .image").mouseover(
    function(){
        $(this).parent().find(".popup").show();
    }
);
$(".block .popup").mouseout(
    function(){
        $(this).hide();
    }
);

这仅适用于“图像”顶部的“弹出窗口”。它闪烁的原因是因为只要“弹出窗口”显示它在“图像”上触发“鼠标输出”,从而隐藏“弹出窗口”

只要“弹出窗口”不位于“图像”的顶部,您的代码就可以正常工作。