简体   繁体   English

jQuery / CSS在悬停时显示图像

[英]Jquery/css displaying an image on hover

I have a div with id="mybutton" and a hidden div with id="mydiv" like in the code below : 我有一个id =“ mybutton”的div和一个id =“ mydiv”的隐藏div,如下面的代码所示:

<head>
<script>
$(document).ready(function(){
    $("#mybutton").hover(function(){
        $("#mydiv").fadeIn();
    }, function(){
        $("#mydiv").fadeOut();
    });
});
</script>
</head>
<body>
    <div id="mybutton">Show</div>
    <div id="mydiv" style="display:none;">Hidden thing..</div>
</body>

I want "mydiv" to appear even if mouse is over "mydiv"(after hovering at mybutton). 我希望即使鼠标悬停在“ mydiv”上(悬停在mybutton之后)也要显示“ mydiv”。

Write CSS 编写CSS

#mydiv{
    display:none;
   /* visibility:hidden; */
}
#mybutton:hover + #mydiv,#mydiv:hover{
    display:block;
  /*   visibility:visible; */
}

Demo 演示版

You can also use visibility:visible; 您还可以使用visibility:visible; and visibility:hidden; visibility:hidden; instead of display property 而不是display属性

$(document).ready(function(){
    $("#mybutton").hover(function(){
       $("#mydiv").fadeIn();
    }, function(){
       $("#mydiv").fadeOut();
    });
});

Give a common parent to them and connect the hover to it. 给他们一个共同的父母,并将鼠标悬停在上面。

html: 的HTML:

<div id="parent">
        <div id="mybutton">Show</div>
<div id="mydiv">Hidden thing..</div>
</div>

css: CSS:

#mydiv {
    display: none;
}

Jq: Jq:

$(document).ready(function(){
    $("#parent").hover(function(){
        $("#mydiv").fadeIn();
    }, function(){
        $("#mydiv").fadeOut();
    });
});

JSfiddle: http://jsfiddle.net/f2W9b/ JSfiddle: http : //jsfiddle.net/f2W9b/

Wrap it inside div: 将它包装在div中:

<div id="container">
     <div id="mybutton">Show</div>
     <div id="mydiv">Hidden thing..</div>
</div>

And listen for mouseenter event on the container div. 并在容器div上监听mouseenter事件

Wrap your button in a container, like so: 将按钮包装在容器中,如下所示:

<span id="hoverarea">
    <div id="mybutton">Show</div>
    <div id="mydiv" style="display: none;">Hidden thing..</div>
</span>

<script>
$(document).ready(function(){
    $("#hoverarea").hover(function(){
        $("#mydiv").fadeIn();
    }, function(){
        $("#mydiv").fadeOut();
    });
});
</script>

http://jsfiddle.net/n4B5b/1/ http://jsfiddle.net/n4B5b/1/

In the fadeout() portion of your function, can you check if the mouse is currently hovering over the #mydiv div? 在函数的fadeout()部分中,可以检查鼠标当前是否悬停在#mydiv div上吗? If so (such as adding a class on hover to the #mydiv), check it and don't fadeout. 如果是这样(例如将悬停类添加到#mydiv),请检查它,不要淡出。

<head>
<script>
$(document).ready(function(){
    $("#mybutton").hover(function(){
        $("#mydiv").fadeIn();
    }, function(){
       if (!$("#mydiv").hasClass('hovering') {
           $("#mydiv").fadeOut();
        }
    });
    $("#mydiv").hover(function(){
        $("#mydiv").addClass('hovering');
    }, function (){
        $("#mydiv").removeClass('hovering');
    });
});
</script>
</head>
<body>
    <div id="mybutton">Show</div>
    <div id="mydiv" style="display:none;">Hidden thing..</div>
</body>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM