Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по HTML про <img ismap> и javascript   Найти похожие ветки 

 
vidiv ©   (2006-08-15 11:32) [0]

Как получить координаты который браузер приписывает к ссылке, не отправляя запрос на сервер в javascript.

Например такой код:
<html>
<body>
...
<a href="targer.php">
<img ismap="ismap" width="400" height="400" onmousemove="handler();" />
</a>
<script language="javascript" type="text/javascript">
function handler() {
...
}
</script>
...
</body>
</html>

как в теле функции handler получить эти самые координаты, именно те которые браузер припишет в случае клика?

ps
я лишее убрал, но имеется ввиду спецификация XHTML 1.0 Transitional.


 
McSimm ©   (2006-08-15 11:36) [1]

получить в js координаты клика по img можно с помощью расчетов, но не с помощью ismap.


 
McSimm ©   (2006-08-15 11:38) [2]

event.offsetX (Y)


 
vidiv ©   (2006-08-15 11:43) [3]


> McSimm ©   (15.08.06 11:36) [1]
> получить в js координаты клика по img можно с помощью расчетов,
>  но не с помощью ismap.

хорошо, раскрою проблему шире...

на самом деле в этом IMGe прозрачная картинка, но в фоне (созданным с помощью стилей backgroud) есть другая...
идея в том, чтобы пользователь визуально разместил одну картинку в другой. используя ismap можно таким образом упростить задачу. Пользователь просто кликает в прозрачную картинку и тем самым выбирает место + к этому мне хочется чтобы в фоне этой прозрачной картинки в след за мышью перемещалось изображение (то которое нужно разместить).
Вот и хочу упростить задачу... не расчитывать еще раз, а просто обработать те данные, которые браузер дописал к ссылке.


 
vidiv ©   (2006-08-15 11:44) [4]

разумеется надо чтобы все это работало в 3 самых популярных браузерах:
IE, FireFox, Opera


 
McSimm ©   (2006-08-15 11:50) [5]

ismap тут не помошник.
во-первых этих данных нет у JS, во вторых для отрисовки вероятно понадобятся абсолютные координаты, а их надо расчитывать циклически по контейнерам.


 
vidiv ©   (2006-08-15 11:55) [6]


> во-первых этих данных нет у JS, во вторых для отрисовки
> вероятно понадобятся абсолютные координаты, а их надо расчитывать
> циклически по контейнерам.

чтото вроде:

obj = document.getElementById("img_id");
x = obj.clientX;
while(obj.parent) {
obj = obj.parent;
x+=obj.clientX;
}
а потом с eventа получать абсолютные координаты и вычитать?


 
McSimm ©   (2006-08-15 12:00) [7]

Наверное да, что-то вроде этого. С учетом отличий IE / Mozilla

кажется надо использовать offsetParent,
под рукой нет наработок и нет времени для проверки :)


 
McSimm ©   (2006-08-15 12:04) [8]

вот моя функция, возвращает координаты объекта относительно страницы

function pageXY(obj) {
var ret = {x:0,y:0}
for (var o=obj; o; o=o.offsetParent) {
 ret.x += o.offsetLeft
 ret.y += o.offsetTop
}
return ret
}


 
vidiv ©   (2006-08-15 12:34) [9]


> McSimm ©   (15.08.06 12:04) [8]

благодарю :)

Задача облегчилась немного и я ее выполнил примерно так:

<script language="javascript" type="text/javascript">
var addimg_ = document.getElementById("addimg");
addimg_.onmousemove = addmove;
function addmove(Event) {
if (window.event) Event = window.event;
addimg_.style.backgroundPosition=
 ((Event.layerX?Event.layerX:Event.offsetX) - 131/2) + "px "+
 ((Event.layerY?Event.layerY:Event.offsetY) - 98/2) + "px";
}
</script>


addimg - это моя прозрачная картинка.
Задача облегчилась в том, что эта самая картинка распологается абсолютно: style="position:absolute"



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.036 c
2-1156163382
DiamondShark
2006-08-21 16:29
2006.09.10
Как закрыть popup-меню?


2-1156081338
Neket
2006-08-20 17:42
2006.09.10
Как задать путь?


15-1156081068
vain
2006-08-20 17:37
2006.09.10
Я нормальный или нет?


2-1156135589
IgorMish
2006-08-21 08:46
2006.09.10
Как округлить число


15-1155752035
ArtemESC
2006-08-16 22:13
2006.09.10
Microsoft Word шпионит...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский