简体   繁体   中英

How to show button on div mouse hover

i want to show button on div hover. when i hover mouse on div then button show otherwise hide.

my button in divbutton div.

html

<div class="divbutton">
   <button type="button" style="display: none;">Hello</button>
</div>

when I hover mouse on div it should show but how to do that i do not know. when I remove mouse button again hide. Thank you.

Use the below selector

button {
  display: none; /* Hide button */
}

.divbutton:hover button {
   display: block; /* On :hover of div show button */
}

Demo

Also make sure you assign some height or min-height to your div element, else it will be 0 as it doesn't hold any content. Also, don't use display: none; as inline style, as inline styles have highest specificity, and hence, you will be forced to use !important which is bad.

In the above example am using button {/*Styles*/} but that is a general element selector, so make sure you define a class to your button element.

Use following jQuery to perform your task.

Here is a jsfiddle demo

$(document).ready(function () {
    $(document).on('mouseenter', '.divbutton', function () {
        $(this).find(":button").show();
    }).on('mouseleave', '.divbutton', function () {
        $(this).find(":button").hide();
    });
});

Mr. Alien's answer gives a nice CSS implementation. If you need in jquery, use this -

$( ".divbutton" )
 .on("mouseenter", function() {
  $("button").show();
})
.on("mouseleave", function() {
  $("button").hide();
});

In pure JavaScript -

var buttonDiv = document.getElementsByClassName("divbutton")[0];  //better use some id and then use getElementById

buttonDiv.onmouseover = function() {
    document.getElementById("YourButtonId").style.display = 'block';
}

buttonDiv.onmouseout = function() {
    document.getElementById("YourButtonId").style.display = 'none';
}

Try this:

$('.divbutton').mouseover(function(event)
{
   $(this).find('button').show();
});

$('.divbutton').mouseout(function(event)
{
   $(this).find('button').hide();
});

first hide the button with transform property.

button{
transform:translate(100%,100%)
//this will move the button right and buttom
}

then when you hover on div, you bring it back

.divbutton:hover button{
     //class name should have been divButton
     transform:translate(0,0)}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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