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 лет.

Gozar 22.01.2010 20:39

Говоря что у вас реализовано всё по всей вероятности вы понимаете ваш сайт. Меня он не интересует. Карта это клиент-серверное приложение, если она большая конечно. Это форум по js. Ваше всё я понимал как серверную часть, полагая что вы просто спрашиваете про часть клиентскую. На данный момент лично я полагаю что основная часть любого сайта это часть клиентская, а ваше все это только приложение для хранения данных. Вы просите помочь вам срочно. Помочь вам срочно можно только за деньги, вне зависимости от вашего стажа, т.к. вам уже дали совет как можно сделать то, что вы просите быстро и он вас не устроил.

Gozar 22.01.2010 20:46

Цитата:

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

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

Riim 23.01.2010 03:05

Для помощи новичкам в обучении, но не в выполнении за них их работы.

Th0m@$ 23.01.2010 14:48

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

Gozar 23.01.2010 16:04

Цитата:

Сообщение от Th0m@$ (Сообщение 41671)
Возможно ли средствами js вывести image внутри div по координатам x,y?

да.


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