Im having a slider that increases width when click-hold and moved.
But as soon as im getting my mouse outside of the slider it doesn't runs anymore.
How can i make it also run when im moving my mouse outside the slider-container
?
var classname = document.getElementsByClassName("slider-container");
const offset = function(el){
var rect = el.getBoundingClientRect(),
scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,
scrollTop = window.pageYOffset || document.documentElement.scrollTop;
return {top: rect.top + scrollTop, left: rect.left + scrollLeft}
};
var mymousemove = function(e) {
var x = e.pageX;
var sliderC = e.currentTarget;
if(parseInt(sliderC.getAttribute("isMousedown")) == 1){
var width = e.pageX - offset(sliderC).left;
sliderC.querySelector('.slider').style.width = width+'px';
}
};
var mymousedown = function(e) {
var sliderC = e.currentTarget;
sliderC.setAttribute("isMousedown",1);
}
var mymouseup = function(e) {
var sliderC = e.currentTarget;
sliderC.setAttribute("isMousedown",0);
}
for (var i = 0; i < classname.length; i++) {
classname[i].addEventListener('mousemove',mymousemove, false);
classname[i].addEventListener('mousedown',mymousedown, false);
classname[i].addEventListener('mouseup',mymouseup, false);
}
body{
user-select: none;
}
.slider-container{
width:200px;
border:4px solid black;
height:100px;
display: inline-block;
margin: 10px;
}
.slider{
width:0;
background:#f00;
height: 100%;
}
<div class="slider-container">
<div class="slider">
</div>
</div>
<div class="slider-container">
<div class="slider">
</div>
</div>
<br />
<br />
<h1>ALSO moving mouse here while mousedown should move them sliders . nam sayin ?</h1>