Reputation:
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
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
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
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
Reputation: 3559
Try this:
$('.divbutton').mouseover(function(event)
{
$(this).find('button').show();
});
$('.divbutton').mouseout(function(event)
{
$(this).find('button').hide();
});
Upvotes: 0
Reputation: 157334
Use the below selector
button {
display: none; /* Hide button */
}
.divbutton:hover button {
display: block; /* On :hover of div show button */
}
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