Еще один вопрос, который в течение нескольких последних дней клевал у меня. Как вы могли видеть из моих других вопросов, я создаю программное обеспечение карты разума. Итак (очень упрощенно) у меня есть два div. Тот, который является квадратом на странице, а другой внутри этого div, который примерно в 10 раз больше и перетаскивается. Это значит, что объекты могут быть помещены на экран, а затем слегка перемещены в сторону, пока добавляется другой объект. Я делаю это, создавая прокрутку внешнего div.Получите положение мыши в прокручиваемом 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, который можно перетаскивать. Надеюсь, я попытался объяснить, но если у меня нет here is a very simple jsfiddle, чтобы продемонстрировать ситуацию, которая у меня есть (хотя здесь нет щелчка мыши, чтобы продемонстрировать мою структуру div). В продукте, который я делаю, пользователь дважды щелкнет по холсту, и появится новый объект, и, следовательно, координаты мыши должны быть правильными.
Я надеюсь, что кто-то там может мне помочь.
Заранее спасибо.
EDIT: Не удалось упомянуть, что для части моего приложения я использую JQuery, поэтому решение с JQuery или без него будет в порядке. Еще раз спасибо.
Я заметил, что ваш Fiddle использует JQuery. Поскольку вы не упомянули об этом здесь, будете ли вы использовать jQuery как часть своего решения? Какие координаты мыши вы ожидаете относительно холста или документа? – Nimrod
Ну, если это можно сделать проще в JQuery, тогда это нормально ... Любое решение в порядке ... Я обновляю сообщение, хотя. Мне нужно положение относительно внутреннего div, т. Е. #canvas в jsfiddle. Благодарю. –