Используя это по-настоящему:

дин вопрос, который задевал меня последние несколько дней. Как вы уже могли видеть из моих других вопросов, я создаю какое-то программное обеспечение для карт разума. Итак (очень упрощенно) у меня есть два деления. Один - квадрат на странице, а другой внутри этого элемента, который примерно в 10 раз больше и перетаскиваем. Это делается для того, чтобы объекты можно было размещать на экране, а затем слегка перемещать в сторону, пока добавляется другой объект и т. Д. Я делаю это, создавая прокручиваемый внешний элемент div.

Проблемы, с которыми я сталкиваюсь, связаны с положением мыши в java-скрипте. Если я получу положение мыши в любом месте в div, это не будет правильно, так как я смещу внутренний div на половину его размера к верху и левому краю (так эффективно пользователь смотрит на середину холста и может двигаться так, как ему нравится) , Я пробовал десятки различных функций координат мыши, но ни одна из них, кажется, не работает. Пример, который должен быть кросс-браузерным, который я нашел где-то в Интернете:

function getMouse(e) {
  var posx;
  var posy;
  if (!e) var e = window.event;
  if (e.pageX || e.pageY) {
    posx = e.pageX;
    posy = e.pageY;
  }
  else if (e.clientX || e.clientY) {
    posx = e.clientX + document.body.scrollLeft + document.getElementById("canvas").scrollLeft;
    posy = e.clientY + document.body.scrollTop  + document.getElementById("canvas").scrollTop;
  }
} //getMouse

Но даже это не работает. Я почти уверен, что ошибка в том, что у меня есть внутренний div, который можно перетаскивать. Надеюсь, у меня был какой-то смысл пытаться объяснить, но если я невот очень простая jsfiddle в попытке продемонстрировать ситуацию, которая у меня есть (хотя здесь не выполняется щелчок мышью, просто для демонстрации моей структуры div). В продукте, который я делаю, пользователь дважды щелкнет на холсте, и появится новый объект, и, следовательно, почему координаты мыши должны быть правильными.

Я надеюсь, что кто-то может мне помочь.

Заранее спасибо.

РЕДАКТИРОВАТЬ: Не удалось упомянуть, что для части моего приложения я использую JQuery, поэтому решение с JQuery или без него подойдет. Еще раз спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос