Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. mainPin.addEventListener('mousedown', function (evt) {
  2.  
  3. evt.preventDefault();
  4.  
  5. var startCoords = {
  6. x: evt.clientX,
  7. y: evt.clientY
  8. };
  9.  
  10. var dragged = false;
  11. var onMouseMove = function (moveEvt) {
  12. var mapWidth = window.util.townMap.offsetWidth;
  13. moveEvt.preventDefault();
  14. dragged = true;
  15.  
  16. var shift = {
  17. x: startCoords.x - moveEvt.clientX,
  18. y: startCoords.y - moveEvt.clientY
  19. };
  20.  
  21. startCoords = {
  22. x: moveEvt.clientX,
  23. y: moveEvt.clientY
  24. };
  25.  
  26. mainPin.style.top = mainPin.offsetTop - shift.y + 'px';
  27.  
  28. if (parseInt(mainPin.style.top, 10) > MapBordersLimit.BOTTOM) {
  29. mainPin.style.top = MapBordersLimit.BOTTOM + 'px';
  30. } else if (parseInt(mainPin.style.top, 10) < MapBordersLimit.TOP) {
  31. mainPin.style.top = MapBordersLimit.TOP + 'px';
  32. }
  33. mainPin.style.left = mainPin.offsetLeft - shift.x + 'px';
  34. if (parseInt(mainPin.style.left, 10) > (mapWidth - MAIN_PIN_WIDTH_ENABLED / MAIN_PIN_HIDING)) {
  35. mainPin.style.left = (mapWidth - MAIN_PIN_WIDTH_ENABLED / MAIN_PIN_HIDING) + 'px';
  36. } else if (parseInt(mainPin.style.left, 10) < (MapBordersLimit.LEFT - MAIN_PIN_WIDTH_ENABLED / MAIN_PIN_HIDING)) {
  37. mainPin.style.left = (MapBordersLimit.LEFT - MAIN_PIN_WIDTH_ENABLED / MAIN_PIN_HIDING) + 'px';
  38. }
  39.  
  40. address.value = (parseInt(mainPin.style.left, 10) + MAIN_PIN_WIDTH_DISABLED / 2) + ', ' + (parseInt(mainPin.style.top, 10) + (MAIN_PIN_HEIGHT_DISABLED / 2) + (MAIN_PIN_HEIGHT_ENABLED / 2) + MAIN_PIN_HEIGHT);
  41. };
  42.  
  43. var onMouseUp = function (upEvt) {
  44. upEvt.preventDefault();
  45. document.removeEventListener('mousemove', onMouseMove);
  46. document.removeEventListener('mouseup', onMouseUp);
  47. if (dragged) {
  48. var onMainPinClick = function (mEvt) {
  49. mEvt.preventDefault();
  50. mainPin.removeEventListener('click', onMainPinClick);
  51. };
  52. mainPin.addEventListener('click', onMainPinClick);
  53. }
  54. };
  55.  
  56. document.addEventListener('mousemove', onMouseMove);
  57. document.addEventListener('mouseup', onMouseUp);
  58. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement