Skip to content

Instantly share code, notes, and snippets.

@kaecy
Created December 17, 2013 22:59
Show Gist options
  • Select an option

  • Save kaecy/8014207 to your computer and use it in GitHub Desktop.

Select an option

Save kaecy/8014207 to your computer and use it in GitHub Desktop.
element dragging with jscript
<html>
<head>
<script src="lib/moving.js"></script>
<script>
function getID(eName) {
return document.getElementById(eName);
}
addEventListener("load", function() {
var o1 = getID("1"), o2 = getID("2");
var o3 = getID("3"), o4 = getID("4");
Moving.plugIn(moveSupport, o1);
Moving.plugIn(moveSupport, o2);
Moving.plugIn(moveSupport, o3);
Moving.plugIn(moveSupport, o4);
});
</script>
<style>
.nr {
width: 16px; /* a shape is a 16px square */
position: fixed;
right: 5px;
top: 5px;
}
.shape {
width: 14px;
height: 14px;
border: 1px dashed black;
}
.red {
background: red;
}
.blue {
background: blue;
}
</style>
</head>
<body>
<div class="nr">
<div class="shape red" id="1"></div>
<div class="shape blue" id="2"></div>
<div class="shape red" id="3"></div>
<div class="shape blue" id="4"></div>
</div>
</body>
</html>
var Moving = {
plugIn: function(listener, elm) {
elm.addEventListener("mousedown", listener);
}
}
function moveSupport(event) {
var element = event.target;
var moveListener;
var releaseListener;
var insideElmOffsetX;
var insideElmOffsetY;
insideElmOffsetX = Math.abs(element.offsetLeft - event.pageX);
insideElmOffsetY = Math.abs(element.offsetTop - event.pageY);
element.style.zIndex = 1;
element.style.cursor = "-moz-grabbing";
if (! element.moved) {
element.moved = true;
element.style.position = "absolute";
element.style.left = event.pageX - insideElmOffsetX;
element.style.top = event.pageY - insideElmOffsetY;
}
moveListener = function(event) {
element.style.left = event.pageX - insideElmOffsetX;
element.style.top = event.pageY - insideElmOffsetY;
}
releaseListener = function(event) {
element.style.zIndex = "auto";
element.style.cursor = "-moz-grab";
document.removeEventListener("mousemove", moveListener);
document.removeEventListener("mouseup", releaseListener);
}
document.addEventListener("mousemove", moveListener);
document.addEventListener("mouseup", releaseListener);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment