2012-06-05 232 views
0

是否有任何jQuery的功能,使鼠标进入屏幕的第一个四分之一时触发一个功能?显示/隐藏div jquery

我实际上做的是显示并隐藏div,当鼠标移动到另一个div上时,它们都处于相同位置(重叠),它显示并隐藏我的内容,但该按钮被禁用,因为show_hide div已关闭菜单DIV,我设置显示隐藏div的Z-指数为-1,每次在菜单DIV鼠标移动不断闪烁

<div id="menu" style ="width : 100% ; height:50px ;text-align : center ; background: rgba(51, 102, 255, 0.2); position : absolute ; top:0 ; display : none" > 
      <div id="pre" style ="height:100% ; width: 50px ; float :left ; left:0 "><a href="facebook.com"><img src="External_Files/images/left.png" style="margin-top:25%" /></a></div> 
      <div id="menuContent" style="width:90% ; height:50px ; position:absolute; margin-left :60px ; border : 2px solid red; overflow-x: scroll; " ><a href="facebook.com">mina</a> </div> 
      <div id="next" style ="height:100% ; width: 50px ; float :right ; right:0 ; text-align : center "><a href="#"><img src="External_Files/images/right.png" /></a></div> 
      </div> 
      <div id="show_hide" style ="width : 100% ; height:70px ; position : absolute ; top:0" ></div> 

,这是jQuery代码:

$(document).ready(function(){ 
    $("#show_hide").hover(
     function(){ 
      $("#menu").show() ; 

     }, 
     function(){ 
      $("#menu").hide() ; 

     } 
    ); 

回答

0

hover()事件实际上只是使用mouseenter()和mouseleave()。这应该工作:

$(document).ready(function(){ 
    $("#show_hide").mouseenter(
     function(){ 
      $("#menu").show(); 
     } 
    ); 
    $("#menu").mouseleave(
     function(){ 
      $(this).hide(); 
     } 
    ); 
}); 

如果你想保留的HTML结构的事情是这样的,那么你将要当你离开它来隐藏自己的#menu股利。

使其工作的另一种方法是在#show_hide div中包含#menu div。如果你这样做,那么你的原始jQuery将工作。

0
$(document).ready(function(){ 
    $("#show_hide").mouseover(function(){ 
     $("#menu").show() ; 
     $("#show_hide").css("display","none"); 
    }); 
    $("#menu").mouseleave(
    function(){ 
     $(this).hide(); 
     $("#show_hide").css("display",""); 
    }); 

    }); 
0
$("#show_hide").mouseover(function(){ 

    if ($("#menu").css('display') == 'none') 
    { 
    $("#menu").slideDown("slow"); 
    } 
    else 
    { 
    $("#menu").slideUp("slow"); 
    } 
});