Advertisement
Guest User

Untitled

a guest
Apr 20th, 2014
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. html,
  2. body {
  3. width:100%;
  4. height:100%;
  5. }
  6.  
  7. .half-size
  8. {
  9. transform:scale(0.5);
  10. -moz-transform:scale(0.5);
  11. -webkit-transform:scale(0.5);
  12. }
  13. .quarter-size
  14. {
  15. transform:scale(0.25);
  16. -moz-transform:scale(0.25);
  17. -webkit-transform:scale(0.25);
  18. }
  19.  
  20. #draggable-element {
  21. width:100px;
  22. height:100px;
  23. background-color:#666;
  24. color:white;
  25. padding:10px 12px;
  26. cursor:move;
  27. position:relative; /* important (all position that's not `static`) */
  28. display:block;
  29. }
  30.  
  31. var selected = null, // Object of the element to be moved
  32. x_pos = 0, y_pos = 0, // Stores x & y coordinates of the mouse pointer
  33. x_elem = 0, y_elem = 0; // Stores top, left values (edge) of the element
  34.  
  35. var elem_height = 0;
  36. var elem_width = 0;
  37.  
  38. // Will be called when user starts dragging an element
  39. function _drag_init(elem) {
  40. // Store the object of the element which needs to be moved
  41. selected = elem;
  42.  
  43. var boundingRectangle = selected.getBoundingClientRect();
  44.  
  45. y_elem = (selected.offsetHeight - (boundingRectangle.bottom - boundingRectangle.top)) / 2;
  46. x_elem = (selected.offsetWidth - (boundingRectangle.right - boundingRectangle.left)) / 2
  47.  
  48. half_elem_height = (boundingRectangle.bottom - boundingRectangle.top) / 2;
  49. half_elem_width = (boundingRectangle.right - boundingRectangle.left) /2;
  50.  
  51. document.addEventListener('mousemove', _move_elem, false);
  52. document.addEventListener('mouseup', _destroy, false);
  53. };
  54.  
  55. // Will be called when user dragging an element
  56. function _move_elem(e)
  57. {
  58. x_pos = e.clientX;
  59. y_pos = e.clientY;
  60.  
  61. selected.style.left = ((x_pos - x_elem) - half_elem_width) + 'px';
  62. selected.style.top = ((y_pos - y_elem) - half_elem_height) + 'px';
  63. }
  64. // Destroy the object when we are done and remove event binds
  65. function _destroy() {
  66. selected = null;
  67. document.removeEventListener('mousemove', _move_elem);
  68. document.removeEventListener('mouseup', _destroy);
  69. }
  70.  
  71. // Bind the functions...
  72. document.getElementById('draggable-element').onmousedown = function () {
  73. _drag_init(this);
  74. };
  75.  
  76. <!DOCTYPE html>
  77. <html>
  78. <head>
  79. <meta charset="utf-8">
  80. <title>JS Bin</title>
  81. </head>
  82. <body>
  83. <div id="draggable-element" class='half-size'>Drag me!</div>
  84. </body>
  85. </html>
  86.  
  87. // Will be called when user dragging an element
  88. function _move_elem(e) {
  89. var el = window.document.body;
  90. var st = window.getComputedStyle(el, null);
  91. var tr = st.getPropertyValue("transform") ;
  92.  
  93. var values = tr.split('(')[1];
  94. values = values.split(')')[0];
  95. values = values.split(',');
  96.  
  97. var a = values[0];
  98. var b = values[1];
  99. var c = values[2];
  100. var d = values[3];
  101. x_pos = document.all ? window.event.clientX : e.pageX;
  102. y_pos = document.all ? window.event.clientY : e.pageY;
  103. if (selected !== null) {
  104. selected.style.left = ((x_pos / a) - x_elem) + 'px';
  105. selected.style.top = ((y_pos / d) - y_elem) + 'px';
  106. }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement