使用幻灯片和幻灯片的悬停的JQuery下拉菜单是跳跃的

我已经做了一个非常简单的下拉菜单,使用jQuery slideup和sliedown的功能 – 但它变得非常跳跃(我使用Firefox 3.6.8),如果鼠标移动到快速,或者如果鼠标被保持其中一个子菜单项.

我在以下链接中提供了一个工作示例:

http://jsfiddle.net/jUraw/19/

没有.stop(true,true)的功能更糟.我也尝试添加hover-intent,但是因为我在同一个div中有一个悬停触发的幻灯片,它与幻灯片功能冲突.

有没有我失踪的东西?我听到clearqueue可能会工作,或者可能暂停,但是无法确定哪里可以添加它们.

感谢所有

解决方法

你可以稍微延迟一点,说200毫秒的动画完成,所以它不是跳跃,但离开.stop(),所以它仍然不会建立,像这样:
$(function () {    
  $('#nav li').hover(function () {
     clearTimeout($.data(this,'timer'));
     $('ul',this).stop(true,true).slideDown(200);
  },function () {
    $.data(this,'timer',setTimeout($.proxy(function() {
      $('ul',true).slideUp(200);
    },this),200));
  });
});

You can give it a try here,这种方法使用$.data()来存储每个元素的超时,所以每个菜单独立处理,如果你有很多菜单项,这应该给一个很好的效果.

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...