user2293418
user2293418

Reputation:

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.

Upvotes: 8

Views: 67132

Answers (5)

Yilmaz
Yilmaz

Reputation: 49301

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)}

Upvotes: 0

Java Curious ღ
Java Curious ღ

Reputation: 3692

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();
    });
});

Upvotes: 15

skos
skos

Reputation: 4212

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';
}

Upvotes: 5

Mr.G
Mr.G

Reputation: 3559

Try this:

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

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

Upvotes: 0

Mr. Alien
Mr. Alien

Reputation: 157334

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.

Upvotes: 40

Related Questions