Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Координаты картинки после движения (https://javascript.ru/forum/misc/5657-koordinaty-kartinki-posle-dvizheniya.html)

Lisenok 29.10.2009 03:03

Координаты картинки после движения
 
Есть картинка, для нее сделан драг-н-дроп, после этого надо получить новые координаты картинки. Все найденные в сети решения выдают старые координаты - те, что были при загрузке картинки.
Делаю, например, так:
function CoordBase() {
t=document.getElementById('img2').offsetTop
alert(t)
}


Как узнать измененные координаты?

Riim 29.10.2009 03:22

document.getElementById('img2').style.top

Lisenok 29.10.2009 03:55

Изменила функцию, не работает. При этом если не прописать в явном виде в стиле картинки значение top, то новая функция вообще значения не возвращает.

Картинку вставляю так:
<img src="pic2.gif" id="img2" style="position: absolute; top: 8px;">


Новый код функции:
function dataBase() {
t=document.getElementById('img2').style.top
alert(t)
}

Riim 29.10.2009 04:34

1. рисунок не существует до window.onload
2. http://javascript.ru/blog/Andrej-Par...cheniya-stilya

Lisenok 29.10.2009 08:33

Что-то все равно не идет процесс...
<html>
<body>
<!-- Некое шаманство для драг-н-дропа -->
<script type="text/javascript" src="wz_dragdrop.js">
</script>
<!-- Моя функция -->
<script type="text/javascript">
function dataBase() {
var computedStyle = mamonts.currentStyle || window.getComputedStyle(mamonts, null);
alert (computedStyle.top );
}
</script>

<img src="pic2.gif" id="img2" name="mamonts">
<!-- Это тоже шаманство для движения картинки, используется готовая библиотека -->
<script type="text/javascript">
   SET_DHTML(CURSOR_POINTER, NO_ALT, SCROLL, "img2");
</script>

<input name="check" onclick="dataBase(this.form)" type="button"
value=" Координата у ">
</body>
</html>


Выдается сообщение "auto". Что я делаю не так?

Riim 29.10.2009 20:41

<html>
<head>
<title></title>
<style type="text/css">
#img2 {
	position: absolute;
	left: 200px;
	top: 100px;
}
</style>
<script type="text/javascript">
function dataBase() {
	var elem = document.getElementById('img2'),
		top = elem.style.top
			|| window.getComputedStyle
				? window.getComputedStyle(elem, null).top
				: elem.currentStyle.top;
	alert(top);
}
</script>
</head>
<body>
<img src="pic2.gif" id="img2" alt="" />
<input type="button" value=" Координата у " onclick="dataBase();" />
</body>
</html>

Octane 29.10.2009 22:24

Хм… а я почему-то всегда делал
document.defaultView.getComputedStyle(node, null)

Riim 29.10.2009 23:55

Цитата:

Сообщение от Octane
Хм… а я почему-то всегда делал

Была тема про это: http://javascript.ru/forum/misc/3464...oprosov-2.html

Позже я нашел на одном английском форуме, что нужно писать именно "document.defaultView" из-за какой-то древней мозилы (или оперы, .... или и того и другого).

Kolyaj 30.10.2009 12:12

Цитата:

Сообщение от Octane
Хм… а я почему-то всегда делал

Логичней тогда так делать
node.ownerDocument.defaultView.getComputedStyle(node, null)

Lisenok 30.10.2009 18:31

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

Octane 30.10.2009 19:58

Цитата:

Сообщение от Kolyaj
Цитата:

Сообщение от Octane
Хм… а я почему-то всегда делал

Логичней тогда так делать
node.ownerDocument.defaultView.getComputedStyle(node, null)

Я просто подсмотрел решение в jQuery и даже не думал, что есть другие варианты :(


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