Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   отрисовка изображения по произвольным координатам (https://javascript.ru/forum/events/7241-otrisovka-izobrazheniya-po-proizvolnym-koordinatam.html)

Th0m@$ 22.01.2010 09:55

отрисовка изображения по произвольным координатам
 
Всем привет!
Помогите плз новичку.

Необходимо реализовать возможность прокрутки изображения с помощью мыши. Сам дошел тока до того как реализовать события мыши (см. код ниже). В функции ms_over я получаю смешения dx и dy. Теперь необходимо перерисовать изображение по новым координатам. Причем смешение может быть и отрицательным, часть изображения которая выходить за пределы ограничивающего элемента должна обрезаться.
Облазил весь интернет и ничего не нашел. Подскажите как реализовать такую функциональность, плз.

<script type="text/javascript">

var gl_x; gl_y, x, y, activate = false;

function ms_down(event) {
defPosition(event);
x = gl_x; y = gl_y;
activate=true;
}

function ms_up(event) {
activate=false;
}

function ms_over(event) {
if (activate) {
dx = gl_x - x;
dy = gl_y - y;
// перерисовка изображения...
}
}

function defPosition(event) {
var x = y = 0;
var event = event || window.event;
if (document.attachEvent != null) { // Internet Explorer & Opera
x = window.event.clientX + (document.documentElement.scrollLeft ?
document.documentElement.scrollLeft : document.body.scrollLeft);
y = window.event.clientY + (document.documentElement.scrollTop ?
document.documentElement.scrollTop : document.body.scrollTop);
}
else if (!document.attachEvent && document.addEventListener) { // Gecko
x = event.clientX + window.scrollX;
y = event.clientY + window.scrollY;
}
y0=document.getElementById("map").offsetTop;
x0=document.getElementById("map").offsetLeft;
gl_x = x-x0;
gl_y = y-y0;
}
</script>

Gozar 22.01.2010 14:56

прокрутка изображения и отрисовка, это разные понятия.

Th0m@$ 22.01.2010 15:32

Спс, а я не знал.
Просьба помогите кто знает как реализовать эту фичу. Надо очень срочно. Я может быть непонятно описал. Вообщем функциональность должна быть как на Яндекс.Карте, т.е. отрисована картинка текущего местаположения. Пользователь нажимает мышь и таскает изображение, и пока он не отпустил кнопку оно перерисовывается в соответствии со смещением мыши от начального клика. и лишь когда он отпускает кнопку происходит запрос на сервер новой картинки. Тут скорее всего и верстка нужна какая-то особенное, поэтому у кого какие идеи ответьте плз. Сам точно не разберусь, нужно срочно сделать.

Kolyaj 22.01.2010 15:37

Цитата:

Сообщение от Th0m@$
Вообщем функциональность должна быть как на Яндекс.Карте

Цитата:

Сообщение от Th0m@$
Сам точно не разберусь, нужно срочно сделать.

Можете взять движок Яндекс.Карт, и подсунуть ему свою карту. http://api.yandex.ru/maps/jsapi/doc/...user-layer.xml

Th0m@$ 22.01.2010 16:23

Да движок свой уже написан на пхп, надо тока прикрутить клиентскую часть навигации по карте. И это как я понимаю реализуется на JavaScript, который я к сожалению толком не знаю.

Kolyaj 22.01.2010 16:38

Цитата:

Сообщение от Th0m@$
Да движок свой уже написан на пхп, надо тока прикрутить клиентскую часть навигации по карте. И это как я понимаю реализуется на JavaScript, который я к сожалению толком не знаю.

Причем здесь PHP? Я говорю как раз про движок на JavaScript, который вы не знаете.

Th0m@$ 22.01.2010 17:17

Я посмотрел описание движка, там вся карта на нем строится, для моего проекта это к сожалению не подходит, а код движка я так понял закрыт, мне по крайней мере не удалось его открыть. Да и не хватает мне тока отрисовки картинки при таскании мышью, остальное все более менее сделано.

Gozar 22.01.2010 19:42

Цитата:

Сообщение от Th0m@$ (Сообщение 41566)
Да и не хватает мне тока отрисовки картинки при таскании мышью, остальное все более менее сделано.

Какой Вы смешной, всего-то не хватает "отрисовки", хоть бы в кавычки поставили, раз не понимаете реализации.

Th0m@$ 22.01.2010 20:03

Мне кажется что форум создан чтобы более опытные помогали новичками или просто обменивались опытом, а не для оттачивания своего красноречия, и попытке показать всем какой ты умный. По делу есть какие-нибудь предложения? Чего языком-то трепать.

Th0m@$ 22.01.2010 20:06

Да я не понимаю как это реализовать, поэтому и попросил помощи. А в программировании (не web) у меня стаж 20 лет.


Часовой пояс GMT +3, время: 18:46.