Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Number.prototype.inRange = function(a, b, exclusive=0){
- if(a>b){c=b;b=a;a=c}
- switch (exclusive) {
- case 0: {return this >= a && this <= b;}
- case 1: {return this > a && this <= b;}
- case 2: {return this >= a && this < b;}
- case 3: {return this > a && this < b;}
- }
- }
- document.body.appendChild(box=document.createElement('span'));
- box.innerText = 'hello';
- box.style.border = '1px solid black';
- box.style.position = 'absolute';
- box.style.top = '0px';
- box.style.left = '0px';
- mouseDown = trueMouseDown = false;
- mouseCoords = [];
- function upd(e){
- if(!trueMouseDown){mouseCoords = [e.clientX-box.offsetLeft, e.clientY-box.offsetTop];};
- if(!mouseDown){return}
- box.style.left = e.clientX-mouseCoords[0]+'px';
- box.style.top = e.clientY-mouseCoords[1]+'px';
- if(box.offsetLeft+box.offsetWidth >= innerWidth){
- box.style.left = innerWidth-box.offsetWidth-1+'px';
- }
- if(box.offsetTop+box.offsetHeight >= innerHeight){
- box.style.top = innerHeight-box.offsetHeight-1+'px';
- }
- if(box.offsetLeft<=0){box.style.left='0px';}
- if(box.offsetTop<=0){box.style.top='0px';}
- }
- document.addEventListener('mousedown', function(e){
- mouseCoords = [e.clientX-box.offsetLeft, e.clientY-box.offsetTop];
- mouseDown = mouseCoords[0].inRange(0, +box.offsetWidth)&&mouseCoords[1].inRange(0, +box.offsetHeight);
- trueMouseDown = true;
- upd(e)
- });
- document.addEventListener('mouseup', e=>{mouseDown = trueMouseDown = false;upd(e)});
- document.addEventListener('mousemove', e=>upd(e));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement