javascript - 使用 jQuery 的可扩展菜单 - 动画

标签 javascript jquery html css

我正在尝试编写一个在悬停时展开子类别的菜单 - 因此一次只能展开一个子类别。它看起来像这样(完全展开):

  • X
    • Y
      • Y.1
      • Y.2
    • Z
      • Z.1
      • Z.2

我的问题是:

动画正常工作,除非我将鼠标悬停在 Y 上然后尝试将鼠标悬停在 Z 上,所有 X 都会关闭。我知道为什么:需要延迟,因为 Z 开始向上移动,所以你不再悬停在 Z 上,它开始关闭。

代码如下:

    $( document ).ready(function() {
        $("#m2l2").hoverIntent(
            function() {
                clearTimeout(z_timer);
                $("#m2l2").toggleClass("child childopen");
                $("#u12").slideToggle("slow", "linear");
            },
            function() {
                z_timer = setTimeout(function() {
                    $("#u12").slideToggle("slow", "linear", function () {
                        $("#m2l2").toggleClass("childopen child");
                    });
                }, 10000);
            });
    });

有什么方法可以避免延迟或延迟仅在特定情况下激活?

这是链接:http://jsfiddle.net/stamblerre/XYp48/12/

谢谢!!!

最佳答案

以下是如何使用 hoverIntent jQuery Plugin 中的对象为 hoverIntent 添加超时

$('.selector').hoverIntent({
    over: function(){},
    out: function(){},
    timeout: 1000 // in miliseconds
});

所以这就是它的样子:JSFIDDLE ,即使有时调用 out 函数需要很长时间,所以根据您的情况定义它的最佳用法

关于javascript - 使用 jQuery 的可扩展菜单 - 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24208328/

相关文章:

javascript - 获取外部脚本的源代码?

javascript - 在JQ中打印obj数组

jquery - 使用 Jquery 弹出图片库

javascript - 在 chartist.js 中为 SVG 数据点添加轮廓

Javascript 滚动激活

javascript - jQuery 最接近的方法不起作用

javascript - 在 safari 上运行 Protractor 测试,例如 "Angular could not be found on the page https://angularjs.org/"

javascript - jQuery 拖动 div 选中的文本

java - 格式化 HTMLEditorKit

css - 响应页面不工作