【问题标题】:jquery timeout on dropdown menu (hoverintent)下拉菜单上的 jquery 超时(hoverintent)
【发布时间】:2023-03-03 04:34:01
【问题描述】:
$(document).ready(function () { 

$('#nav li').hover(
    function () {
        //show its submenu
        $('ul', this).slideDown(220);

    }, 
    function () {
        //hide its submenu
        $('ul', this).slideUp(220);         
    }
);

你好, 我想在我的下拉菜单上设置一个“延迟”,因为响应时间太快了。当我不小心连续悬停 4 次时(它一直上下滑动)。 我阅读并尝试了 HoverIntent jquery 插件。但我无法用这个简单的 jquery 菜单来实现它。

有没有人有这样的经历? 我真的很感激,我尝试实现它但没有成功(我不擅长 jquery)。请提供一些提示/代码,谢谢!

【问题讨论】:

  • .slideDown(1000)?此方法的数字参数是“转换”的持续时间(以毫秒为单位)。不知道是不是你想要的。你的问题有点混乱……
  • 那么你想要的行为是什么?如果您将鼠标移出并移回,是否应该停止它向上滑动并从当前位置开始向下滑动?或者也许在鼠标 out 上它应该在开始向上滑动之前等待 x 毫秒,如果另一个鼠标 enter 在 x 之前发生,则根本不会向上滑动?

标签: javascript jquery jquery-plugins hover hoverintent


【解决方案1】:

您必须停止当前正在运行的动画。试试这个,

$('#nav li').hover(
    function () {
        //show its submenu
        $('ul', this).stop().slideDown(220);

    }, 
    function () {
        //hide its submenu
        $('ul', this).stop().slideUp(220);         
    }
);

【讨论】:

    【解决方案2】:

    尝试以下方法以防止多次触发悬停功能。

    $('#nav li').hover(
        function () {
            //show its submenu
            $('ul', this).stop().slideDown(220);
    
        }, 
        function () {
            //hide its submenu
            $('ul', this).stop().slideUp(220);         
        }
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多