JQuery修复菜单div显示和隐藏

时间:2013-01-01 12:46:03

标签: jquery-ui javascript-events jquery

我有一些问题用于显示菜单的div容器,当我查看激活div的链接显示时,div显示确定,但同时隐藏并且不停留,这个想法显示了div和逗留,当我出去div时,这必须隐藏

基本问题是

  1. 当我将鼠标放在链接上以显示菜单时,菜单会在第一时间完美显示,

  2. 但是,如果我将鼠标放在div - 显示菜单显示之前,此菜单会隐藏所有时间并且不会停留

  3. 使用此脚本我尝试显示div,当鼠标离开此div时,隐藏它

    我的剧本是这样的:

    function menu(id,width,color)
    {
    
    $(".men"+id).mouseover(function() {
    
    
    
    $(".m"+id).css("width",""+width);
    $(".m"+id).show("slide", { direction: "up" }, 500);
    $(".m"+id).css("background-color",""+color);
    
    
    
    });
    
    $(".m"+id).mouseout(function() {
    
    
    $(this).hide(500);
    
    
    });
    
    }
    

    CSS样式:

    #content_menu
    {
    margin-top:7px;
    position:absolute;
    min-height:50px;
    height:auto;
    border:1px solid;
    text-align:left;
    font-family:Arial;
    font-size:12px;
    z-index:2;
    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
    filter: alpha(opacity=80);
    -moz-opacity:0.8;
    -khtml-opacity: 0.8;
    opacity: 0.8;
    }
    
    #content_menu_into
    {
    position:relative;
    width:98%;
    min-height:28px;
    height:auto;
    line-height:28px;
    font-family:Arial;
    font-size:14px;
    color:#000000;
    padding-left:2%;
    text-align:left;
    }
    

    对于通话脚本:

       <a href="#" onmouseover="javascript:menu('1','200','#000000');" class="men1">
       Home Web Menu
       </a>
    
    
        <div id="content_menu" class="m1" style="display:none;">
        <div id="content_menu_into">
        Home
        News
        Articles
        Users
        Vote
        </div>
        </div>
    

    感谢您的帮助,新年快乐!!!

2 个答案:

答案 0 :(得分:0)

删除min-height样式,并尝试使用javascript来实现其效果。

#content_menu
{
//min-height:50px;
}

并使用以下代码替换javascript

function menu(id,width,color)
{
$(".m"+id).css("width",width);
$(".m"+id).css("background-color",color);
$(".men"+id).mouseover(function() {

$(".m"+id).slideDown(500);
});
$(".m"+id).mouseout(function() {

$(this).slideUp(500);

});
}

$(".m"+id).css("width",width);
$(".m"+id).css("background-color",color);

我认为上面的代码可以在菜单功能中被删除或首先调用。因为你只是改变元素风格的值而不需要改回它。所以我删除了它们。

我不知道这是否是你预期的效果。

答案 1 :(得分:0)

对您的代码进行了一些更改。希望这有助于您: -

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery.js"></Script>
<script language="javascript">
$(document).ready(function(){
$("#content_menu").hide();
$(".men1").hover(
function(){$("#content_menu").show()},
function(){$("#content_menu").hide()}
)


})

</script>
<style>

#content_menu
{
    margin-top:7px;
    min-height:50px;
    height:auto;
    border:1px solid;
    text-align:left;
    font-family:Arial;
    font-size:12px;
    z-index:2;
    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
    filter: alpha(opacity=80);
    -moz-opacity:0.8;
    -khtml-opacity: 0.8;
    opacity: 0.8;
    width: 20%;
}

#content_menu_into
{
    position:relative;
    min-height:28px;
    height:auto;
    line-height:28px;
    font-family:Arial;
    font-size:14px;
    color:#000000;
    padding-left:2%;
    text-align:left;
}


</style>
</head>

<body>
<div class="men1">
   Home Web Menu

  <div id="content_menu" class="m1" >
    <div id="content_menu_into">
    Home
    News
    Articles
    Users
    Vote    </div>
    </div>
</div>



</body>
</html>