I need when mouseenter
current div append some text into div but not work good sometimes show sometimes no here is fiddle example
code:
$(document).ready(function() {
var thmb_wrap = $('.thm-img');
var thumb = $('.thm-img img');
var outer = $('.mn-img');
var full = $('.mn-img img').length;
var sc_height = $(outer).height();
thmb_wrap.one('mouseenter', function() {
var cur_im = $('.thm-img img').index($(this).children('img')) + 1;
$(this).append('<span class="numeric">' + cur_im + '/' + (full) + '</span>');
});
thmb_wrap.on('mouseenter', function() {
$(this).children('.numeric').stop().fadeIn(0);
});
thmb_wrap.on('mouseout', function() {
$('.numeric').stop().fadeOut(0);
});
$(thumb).mouseenter(function() {
var images = $('.thm-img img'); // get images
// move mouseover onto actual images otherwise you won't know which one is being moused over
images.on('mouseenter', function() {
var nm = images.index($(this));
outer.stop().animate({
scrollTop: (sc_height * nm) + "px"
}, 0);
});
});
});
.det-sl-wrp {
display: block;
width: 100%;
height: 480px;
background: #848f99;
border: 1px solid #fff;
margin: 8px 0 8px 0;
}
.mn-img {
position: relative;
width: 650px;
height: 100%;
background: red;
float: left;
overflow-y: hidden;
overflow-x: hidden;
}
.thumb-wrp {
float: left;
width: 145px;
overflow-y: auto;
height: 100%;
margin: 0 0 0 8px;
}
.mn-img img {
float: left;
width: 100%;
height: 100%;
}
.sl-lft,
.sl-rgh {
top: 0;
right: 0;
position: absolute;
width: 50%;
height: 100%;
background: rgba(0, 0, 0, 0);
}
.sl-rgh {
left: 0;
}
.thm-img {
position: relative;
width: 100%;
display: block;
height: 100px;
margin: 2px 0 2px 0;
box-sizing: border-box;
transition: border 0.3s, left 0.3s;
border: 1px solid #fff;
}
.thm-img:hover {
border: 1px solid #E78211;
}
.thm-img img {
width: 100%;
height: 100%;
}
.numeric {
display: none;
position: absolute;
left: 49px;
bottom: -1px;
font-size: 10px;
color: #fff;
padding: 2px 0 0 0;
line-height: 11px;
width: 30px;
z-index: 11;
background-color: #E78211;
text-align: center;
font-family: sans-serif;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="det-sl-wrp">
<div class="mn-img">
<div class="sl-lft"></div>
<img class="full-img" src="img/img/a.jpg">
<img class="full-img" src="img/img/b.jpg">
<img class="full-img" src="img/img/c.jpg">
<img class="full-img" src="img/img/d.jpg">
<img class="full-img" src="img/img/a.jpg">
<img class="full-img" src="img/img/c.jpg">
<img class="full-img" src="img/img/b.jpg">
<img class="full-img" src="img/img/d.jpg">
<div class="sl-rgh"></div>
</div>
<div class="thumb-wrp">
<div class="thm-img">
<img src="img/img/1.jpg">
</div>
<div class="thm-img">
<img src="img/img/2.jpg">
</div>
<div class="thm-img">
<img src="img/img/3.jpg">
</div>
<div class="thm-img">
<img src="img/img/4.jpg">
</div>
<div class="thm-img">
<img src="img/img/1.jpg">
</div>
<div class="thm-img">
<img src="img/img/2.jpg">
</div>
<div class="thm-img">
<img src="img/img/3.jpg">
</div>
<div class="thm-img">
<img src="img/img/4.jpg">
</div>
</div>
</div>
Though similar to mouseover , mouseenter differs in that it doesn't bubble and it isn't sent to any descendants when the pointer is moved from one of its descendants' physical space to its own physical space.
The mouseover event triggers when the mouse pointer enters the div element, and its child elements. The mouseenter event is only triggered when the mouse pointer enters the div element. The onmousemove event triggers every time the mouse pointer is moved over the div element.
Definition and Usage The mouseenter event occurs when the mouse pointer is over (enters) the selected element. The mouseenter() method triggers the mouseenter event, or attaches a function to run when a mouseenter event occurs..
Definition and Usage The onmouseover event occurs when the mouse pointer is moved onto an element, or onto one of its children.
It happens because event bubbling. ( What is event bubbling and capturing? )
You can see the difference between mouseover/mouseout and mouseenter/mouseleave from below link.
http://www.quirksmode.org/dom/events/mouseover.html
Solution to your problem is..
thmb_wrap.on('mouseleave', function () {
$('.numeric').stop().fadeOut(0);
});
Working JS Fiddle
https://jsfiddle.net/ebilgin/cg5135xL/3/
you just need mouseleave
event :)
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