Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mainPin.addEventListener('mousedown', function (evt) {
- evt.preventDefault();
- var startCoords = {
- x: evt.clientX,
- y: evt.clientY
- };
- var dragged = false;
- var onMouseMove = function (moveEvt) {
- var mapWidth = window.util.townMap.offsetWidth;
- moveEvt.preventDefault();
- dragged = true;
- var shift = {
- x: startCoords.x - moveEvt.clientX,
- y: startCoords.y - moveEvt.clientY
- };
- startCoords = {
- x: moveEvt.clientX,
- y: moveEvt.clientY
- };
- mainPin.style.top = mainPin.offsetTop - shift.y + 'px';
- if (parseInt(mainPin.style.top, 10) > MapBordersLimit.BOTTOM) {
- mainPin.style.top = MapBordersLimit.BOTTOM + 'px';
- } else if (parseInt(mainPin.style.top, 10) < MapBordersLimit.TOP) {
- mainPin.style.top = MapBordersLimit.TOP + 'px';
- }
- mainPin.style.left = mainPin.offsetLeft - shift.x + 'px';
- if (parseInt(mainPin.style.left, 10) > (mapWidth - MAIN_PIN_WIDTH_ENABLED / MAIN_PIN_HIDING)) {
- mainPin.style.left = (mapWidth - MAIN_PIN_WIDTH_ENABLED / MAIN_PIN_HIDING) + 'px';
- } else if (parseInt(mainPin.style.left, 10) < (MapBordersLimit.LEFT - MAIN_PIN_WIDTH_ENABLED / MAIN_PIN_HIDING)) {
- mainPin.style.left = (MapBordersLimit.LEFT - MAIN_PIN_WIDTH_ENABLED / MAIN_PIN_HIDING) + 'px';
- }
- 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);
- };
- var onMouseUp = function (upEvt) {
- upEvt.preventDefault();
- document.removeEventListener('mousemove', onMouseMove);
- document.removeEventListener('mouseup', onMouseUp);
- if (dragged) {
- var onMainPinClick = function (mEvt) {
- mEvt.preventDefault();
- mainPin.removeEventListener('click', onMainPinClick);
- };
- mainPin.addEventListener('click', onMainPinClick);
- }
- };
- document.addEventListener('mousemove', onMouseMove);
- document.addEventListener('mouseup', onMouseUp);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement