代码之家  ›  专栏  ›  技术社区  ›  AndyMcKenna

试着用向下/向上滑动保持滑动分区打开

  •  0
  • AndyMcKenna  · 技术社区  · 14 年前

    我正在构建一个由标题区域和包含链接的内容区域组成的菜单控件。

    我先隐藏内容区域,然后当我悬停在标题上方时调用slidedown,当您离开标题时调用slideup。我的问题是,如果你想让内容区保持开放,我也希望。

    <div id="header">Header</div>
    <div id="content">Content</div>
    
    $('#header').hover(FadeMenuIn, FadeMenuOut);
    
    function FadeMenuIn(ID) {
        $('#content').stop(true, true).slideDown('slow');
    }
    
    function FadeMenuOut(ID) {
        $('#content').stop(true, true).slideUp('slow');
    }
    

    我已经尝试向内容添加相同的处理程序,但当我离开标题大约20像素时,它仍然会向上滑动内容。

    演示: here

    1 回复  |  直到 14 年前
        1
  •  2
  •   Nick Craver    14 年前

    你可以用一个 .delay() 像这样呼叫:

    $('#header, #content').hover(FadeMenuIn, FadeMenuOut);
    
    function FadeMenuIn(ID) {
      $('#content').stop(true, true).slideDown('slow');
    }
    
    function FadeMenuOut(ID) {
      $('#content').stop(true, true).delay(10).slideUp('slow');
    }
    

    See the updated demo here 我们要做的是稍微推迟 .slideUp() (排队),但当你进入 #content 元素您正在清除该队列,因此当时间到来时,不会有任何东西向上滑动,除非您在这两个元素之外。 艾斯