Two things don't seem to work with this code.
As it stands, it only works if you hover over the smaller DIV. 2. The smaller DIV doesn't disappear when I stop hovering.
<div class="one">
<div class="two"></div>
</div>
<div class="one">
<div class="two"></div>
</div>
.one {
position: relative;
width: 100px;
height: 100px;
margin: 10px;
background-color: #CCC;
}
.two {
position: relative;
top: 20px;
left: 20px;
height: 40px;
width: 40px;
background: #333;
}
/* Fade-in text over images */
$(function(){
$(".two").css("opacity",0).fadeTo(0, 0);
$(".two").mouseover(function () {
$(this).fadeTo(200, 1);
});
$("two").mouseout(function () {
$(this).fadeTo(200, 0);
});
});
You should target the larger div, .one, and then change the smaller div, .two within the context of this whenever hovering .one. When fading from visible to invisble you can most of the time use fadeIn/Out, and just set the element to display:none in the CSS.
$(function(){
$('.one').on({
mouseenter: function() {
$(".two", this).fadeIn(200);
},
mouseleave: function() {
$(".two", this).fadeOut(200);
}
});
});
FIDDLE
$(".one").on('mouseenter mouseleave',function ( e ) {
var fade = e.type=='mouseenter'?
$('.two', this).stop().fadeTo(200, 1):
$('.two', this).stop().fadeTo(200, 0);
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With