Breite eines Divs auslesen
Sertl
- javascript
Hi,
ich brauche zur Berechnung von Koords die Breite und Höhe eines Divs(<div id="menu" class="menu">...</div>).
die left- und top-Koordinaten gibt er mir mit Hilfe meiner Testfunktion aus. Die Funktion wird beim mousemove-Ereignis des documents aufgerufen.
function koords_gibaus(){
alert (document.getElementById("menu").style.left);
alert (document.getElementById("menu").style.top);
alert (document.getElementById("menu").style.width);
alert (document.getElementById("menu").style.height);}
Woran liegt es, dass er mir left und top ausgibt; width und height aber nicht.
Alle 4 Eigenschaften wurden auch im <style>-Tag für ".menu" vordefiniert?
mfg
Andreas
Hallo,
ich glaub', dass es
alert (document.getElementById("menu").style.width);
alert (document.getElementById("menu").style.height);}
nicht gibt...
die weite könntest du mit
alert (document.getElementById("menu").style.right);
(rechte Koordinate)
alert (document.getElementById("menu").style.bottom);
(unterere Koordinate)
die Weite könntest du mit (...).right-(...).left rauskriegen...
die Höhe mit (...).bottom-(...).top...
Ich hoffe das hilft dir weiter...
Tschau
Hi,
das mit right und bottom hab ich auch schon probiert. Dabei gibt die Funktion auch nichts zurück.
Die beiden Eigenschaften height und width gibt es. Ich weiß nur nicht, ob ich sie nur zum Festlegen hernehmen kann oder auch zum Auslesen.
Bei SELFHTML steht, dass man damit die Höhe und die Breite eines Elements bestimmen kann. Von Auslesen der Werte wird nichts erwähnt. Was mich aber verwirrt ist, dass bei den Infos zu top und left, auch nur dabei steht, dass man diese Eigenschaften benutzen kann um den Startpunkt des Elements festzulegen. Es heißt aber nicht, dass man die Werte auch auslesen kann. Trotzdem funktioniert es.
mfg
Andreas
Solange die Werte nur im style-tag oder im externen style-sheet definiert werden kann man sie nicht auslesen, wohl aber bei einer Definition mit inline-styles. Das ist aber nicht die Lösung.
Man kommt aber mit:
document.getElementById("wasauchimmer").offsetWidth;
bzw. ...offsetHeight;
an die Werte heran.
im Mozilla funktioniert auch:
document.defaultView.getComputedStyles
MfG
Klaus
ich brauche zur Berechnung von Koords die Breite und Höhe eines Divs(<div id="menu" class="menu">...</div>).
Aus miener Bibliothek:
////////////////////////////////////////////////////////////
// getSize(id, win)
function getSize(id, win)
{
var obj = id;
if(typeof id == "string") obj = getById(id, win);
if(!obj) return false;
var size = {width:0, height:0};
if(typeof document.layers != 'undefined')
{
size.width = obj.clip.width;
size.height = obj.clip.height;
}
else if(obj.offsetWidth)
{
size.width = parseInt(obj.offsetWidth);
size.height = parseInt(obj.offsetHeight);
}
return size;
}
getById() ist eine Funktion um die Referenz des Elementes zu holen. Wenn dir aktuelle Browser reichen kannst du sie mit document.getElementById ersetzen.
Struppi.