【问题标题】:Changing jQuery Div Hover Area更改 jQuery Div 悬停区域
【发布时间】:2013-08-04 18:21:24
【问题描述】:

我有一个像这样工作的 jquery 代码...当你将鼠标悬停在一个块上时,一个新的 div 向上滑动并且一个红色的块 div 淡出,然后当你离开悬停区域时,div 然后向下滑动并且红色块 div 淡入。一切正常,这是 jsFiddle:

http://jsfiddle.net/Gsghr/119/

唯一的问题是当新的 div 向上滑动显示“第一个项目需要向上切换”时,如果您的鼠标悬停在该 div 上,该 div 应该保持在原位。相反,一旦您的鼠标离开“项目 1”灰色块 div 的 div 区域,另一个 div(表示“第一个项目需要向上切换”)将消失。

我尝试像这样通过 CSS 更改 div 的悬停区域,但它不起作用...

#coltab li:hover + #coltab ul li, #coltab ul li:hover {
display: block;
}

也许我做错了。但同样,当您将鼠标悬停在“第一项需要向上切换”的 div 上时,它应该可以工作。那个 div 应该留在它的位置,而不是向下滑动。同样,这里是 jsfiddle,http://jsfiddle.net/Gsghr/119/,任何帮助将不胜感激。 :)

此外,如果您连续多次将鼠标悬停在 div 上,则会出现跳跃,并且悬停的整个功能甚至可能会搞砸,如果有人可以解决这个问题或对此有一个很棒的解释。

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    更改要保持的 div 的 z 顺序,使其高于红色 div。如果这在视觉上不理想,请尝试使用具有更高 z 顺序的不可见 div,它与您想要保持的 div 的相同大小相匹配。

    跳跃只是来自调用悬停的次数。我不知道这个问题的确切答案,但我想您可以使用“取消委托”来防止事件堆叠。

    【讨论】:

    • 我也尝试更改 z-index,如果这就是您的意思。一个jsfiddle会很好! :)
    【解决方案2】:

    我也是最近的 Jquery 爱好者,但我建议使用 mouseenter 和 mouseleave 方法。 mouseleave 方法不会让事件下降到子级别,希望可以解决问题。

    在此处查看示例演示:http://api.jquery.com/mouseover/

    Tc,阿米特

    【讨论】:

    • 感谢阿米特。不幸的是,我不知道如何将此方法应用于我当前的代码。如果您可以将其应用于我的 jsfiddle,那就太棒了! :)
    猜你喜欢
    • 2012-12-15
    • 2012-10-24
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    相关资源
    最近更新 更多