определить положени и высоту

 
0
 
JavaScript
ava
Step | 28.10.2004, 15:47
<p onmouse="a()">asdgdsag</p>

в функции нужно определить размер и положению текста заключенного в <p>

как это сделать
Comments (14)
ava
Alx | 28.10.2004, 16:37 #
Step
а что значит положение?

если ничего не задано, сомневаюсь, что можно определить... а если задано, то


<p style="font-size:15px;" onmouseover="alert(this.style.fontSize)">asdgdsag</p>
ava
Step | 28.10.2004, 16:39 #
Мне необходимо вычислить координаты описывающего прямоугольника
ava
GoodBoy | 28.10.2004, 16:55 #
Step
Скорее всего не получится...
added later:
а вообще можно попробовать
offsetLeft, offsetTop, offsetWidth и offsetHeight
ava
Step | 28.10.2004, 17:09 #
GoodBoy, возвращают пустоту, я уже пробывал.. я так понимаю что если в штмл коде на задано то и фиг получешь...
ava
GoodBoy | 28.10.2004, 17:38 #
Странно... А ну возьми вот это и пощелкай на тексте, а потом в левом окне посмотри значения:

<body>
<p onmouseOver="a(this)">asdgdsag</p>

<script>
document.onclick = doClick;

function a(obj) {}

function doClick() {
       var str = '';
       var str1 = '';
       var str2 = '';
       var obj = event.srcElement;
       for (i in obj) {
               if (i.indexOf("on")==0) {
                       try {
                               str1 += i+" = "+ obj[i]+"\n";
                       } catch(e) {
                               str1 += i+" = ERROR READ!!!\n";
                       }
               } else {
                       try {
                               if (''+obj[i]!='') str += i+" = "+ obj[i]+"\n";
                               else str2 += i+" = "+ obj[i]+"\n";
                       } catch(e) {
                               str += i+" = ERROR READ!!!\n";
                       }
               }
       }
       document.all.txt.value = str;
       document.all.txt1.value = str1;
       document.all.txt2.value = str2;
}
</script>
<p>
<textarea name=txt cols=45 rows=28></textarea>&nbsp;&nbsp;&nbsp;
<textarea name=txt2 cols=30 rows=28></textarea>&nbsp;&nbsp;&nbsp;
<textarea name=txt1 cols=30 rows=28></textarea>
</body>
ava
Step | 28.10.2004, 17:44 #
но как это у тебя работает... вообщем работает но я не пойму как... как мне это сделать ввиде

obj.style.offsettop
ava
GoodBoy | 28.10.2004, 17:55 #
не obj.style.offsettop а obj.offsetTop smile)))))))))

подставь вот это в код:
function a(obj) {
alert("offsetTop = "+obj.offsetTop+"\noffsetLeft = "+obj.offsetLeft+"\noffsetWidth = "+obj.offsetWidth+"\noffsetHeight = "+obj.offsetHeight);
}
ava
Step | 28.10.2004, 17:58 #
ты царь !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Спасибо
ava
GoodBoy | 28.10.2004, 17:59 #
Цитата (Step @ 28.10.2004, 18:58)
ты царь !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Нет!!!!!!!!!!! Великий шаман!!!!!!!!!!!!!!!!! :p smile smile smile
ava
Aliance | 28.10.2004, 21:19 #
smile

Цитата (Step @ 28.10.2004, 14:47)


onmouse


Ой, научишь такое событие объявлять? smile))))))))))))


Цитата (GoodBoy @ 28.10.2004, 17:59)


Великий шаман!!!!!!!!!!!!!!!!!



smile smile smile

smile
ava
Sardar | 29.10.2004, 00:03 #
Цитата (GoodBoy @ 28.10.2004, 15:55)
Скорее всего не получится...

Елки, появляюсь вечером, и сразу от ответов начинаю возмущатся :D

Начиналось все хорошо:
Цитата (GoodBoy @ 28.10.2004, 15:55)
offsetLeft, offsetTop, offsetWidth и offsetHeight

Продолжим что у всех элементов есть свойство offsetParent, от которого считаются координаты, предок тоже имеет свои координаты, по логике двигаем далсьче вверх пока предок не станет null. В принципе все элементы имеют в offsetParent элемент body, свойство меняется только если в предках элемента есть блочный элемент с релативной позицией.
Пример кода:
<span id="test">Test</span>

...
function getPosition(obj) {
var x=0, y=0;
while(obj) {
x+=obj.offsetLeft;
y+=obj.offsetTop;
obj=obj.offsetParent;
}
return {x: x, y:y};
}
var p=getPosition(document.getElementById("test"));
alert(p.x +", "+p.y);
ava
GoodBoy | 29.10.2004, 10:38 #
Цитата (Sardar @ 29.10.2004, 01:03)
Елки, появляюсь вечером, и сразу от ответов начинаю возмущатся

Не возмущайся!!!! smile))))))) К концу рабочего дня голова уже сам знаешь какая... smile)))))
ava
Step | 29.10.2004, 11:54 #
Sardar, знаешь а ведь сходу и не получалось.... я конечно ламер ... но не получалось....
ava
Step | 29.10.2004, 13:42 #
Цитата (Sardar @ 29.10.2004, 00:03)


<span id="test">Test</span>



...

function getPosition(obj) {
  var x=0, y=0;
  while(obj) {
  x+=obj.offsetLeft;
  y+=obj.offsetTop;
  obj=obj.offsetParent;
  }
  return {x: x, y:y};

}

var p=getPosition(document.getElementById("test"));

alert(p.x +", "+p.y);


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


Спасибо...
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  Sardar   Step   GoodBoy   Alx ava  Aliance
advanced
Submit