»
EnglishFrenchVietnamese

Print - Crossbrowser Drag Handler - JavaScriptBank.com

Full version: jsB@nk » Utility » Crossbrowser Drag Handler
URL: https://www.javascriptbank.com/crossbrowser-drag-handler.html

Crossbrowser Drag Handler © JavaScriptBank.comEver wanted to drag an element or image around on your Web page? Just attach this drag handler to any number of elements on the page and you will be able to drag them all. Note that the elements must be positioned either relatively or absolutely.

Full version: jsB@nk » Utility » Crossbrowser Drag Handler
URL: https://www.javascriptbank.com/crossbrowser-drag-handler.html



JavaScript
<script type="text/javascript">// Created by: Justas | http://www.webtoolkit.info/var DragHandler = {// private property._oElem : null,// public method. Attach drag handler to an element.attach : function(oElem) {oElem.onmousedown = DragHandler._dragBegin;// callbacksoElem.dragBegin = new Function();oElem.drag = new Function();oElem.dragEnd = new Function();return oElem;},// private method. Begin drag process._dragBegin : function(e) {var oElem = DragHandler._oElem = this;if (isNaN(parseInt(oElem.style.left))) { oElem.style.left = '0px'; }if (isNaN(parseInt(oElem.style.top))) { oElem.style.top = '0px'; }var x = parseInt(oElem.style.left);var y = parseInt(oElem.style.top);e = e ? e : window.event;oElem.mouseX = e.clientX;oElem.mouseY = e.clientY;oElem.dragBegin(oElem, x, y);document.onmousemove = DragHandler._drag;document.onmouseup = DragHandler._dragEnd;return false;},// private method. Drag (move) element._drag : function(e) {var oElem = DragHandler._oElem;var x = parseInt(oElem.style.left);var y = parseInt(oElem.style.top);e = e ? e : window.event;oElem.style.left = x + (e.clientX - oElem.mouseX) + 'px';oElem.style.top = y + (e.clientY - oElem.mouseY) + 'px';oElem.mouseX = e.clientX;oElem.mouseY = e.clientY;oElem.drag(oElem, x, y);return false;},// private method. Stop drag process._dragEnd : function() {var oElem = DragHandler._oElem;var x = parseInt(oElem.style.left);var y = parseInt(oElem.style.top);oElem.dragEnd(oElem, x, y);document.onmousemove = null;document.onmouseup = null;DragHandler._oElem = null;}};// =============function beginScript() {  function begin (element, x, y) {  var s = '#' + element.id + ' (begin drag)' + ' x:' + x + ', y:' + y;  updateInfo(s);  }  function drag (element, x, y) {  var s = '#' + element.id + ' (dragging)' + ' x:' + x + ', y:' + y;  updateInfo(s);  }  function end (element, x, y) {  var s = '#' + element.id + ' (end drag)' + ' x:' + x + ', y:' + y;  updateInfo(s);  }  function updateInfo(s) {  // Comment out the line below to stop displaying the location  document.getElementById('info').innerHTML = s;  }  var dragable1 = DragHandler.attach(document.getElementById('dragable1'));  var dragable2 = DragHandler.attach(document.getElementById('dragable2'));  var dragable3 = DragHandler.attach(document.getElementById('dragable3'));  dragable1.dragBegin = begin;  dragable1.drag = drag;  dragable1.dragEnd = end;  dragable2.dragBegin = begin;  dragable2.drag = drag;  dragable2.dragEnd = end;  dragable3.dragBegin = begin;  dragable3.drag = drag;  dragable3.dragEnd = end;}// =============// Multiple onload function created by: Simon Willison// http://simon.incutio.com/archive/2004/05/26/addLoadEventfunction addLoadEvent(func) {  var oldonload = window.onload;  if (typeof window.onload != 'function') {    window.onload = func;  } else {    window.onload = function() {      if (oldonload) {        oldonload();      }      func();    }  }}addLoadEvent(function() {  beginScript();});</script><!--    This script downloaded from www.JavaScriptBank.com    Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->


HTML
<div id="info">Start drag process...</div><div id="dragable1" style="position: relative; width: 50px; height: 50px; background: silver; border: 1px dashed red; font-size: 11px; padding: 5px; text-align: center;"><br>Drag me!</div><div id="dragable2" style="position: relative; width: 90px; height: 40px; background: silver; border: 1px dashed red; font-size: 11px; padding: 5px; text-align: center;"><br>Drag me too!</div><div id="dragable3" style="position: relative; width: 126px; height: 64px;"><img src="../image/logojsb.gif"></div><!--    This script downloaded from www.JavaScriptBank.com    Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->