[JavaScript] Auslesen der Position eines Elements



  • Gibt es eine Möglichkeit die Position eines Elements mittels JavaScript herauszufinden, wenn diese nicht expliziet gesetzt wurde? Mit document.getElementById().style.* kann ich afaik nur gesetzte Eigentschaften auslesen. Ich möchte aber von einem div ohne style Angaben die Position (style.top und style.left) auf dem Bildschirm auslesen. Gibt es da eine Möglichkeit?

    Wie könnte man dieses Problem anders lösen?

    Danke! 🙂





  • Vielen Dank, dass hat im Firefox und im Konqueror prima funktioniert. Allerdings zeigt er mir im Opera und im IE 6 immer 0 als Wert an.

    Folgendes Beispiel:

    <html>
    <head>
    	<title>Test</title>
    		<style type="text/css">
    			div.popup{	
    				position:absolute;
    				width:150;
    				background-color:#00FFFF;
    			}
    		</style>
    		<script type="text/javascript">
    			function foo () {
    				var object = document.getElementById("div_1");
    				alert("Position: " + object.offsetTop + "/" + object.offsetLeft);
    			}
    		</script>
    	</head>
    	<body>
    		<div id="div_1" name="div_1" style="border:1px solid #000000;">
    
    			<a href="" onmouseover="foo()">Hallo</a>
    		</div>
    	</body>
    </html>
    

    Woran könnte das liegen? Wann muss ich ändern, damit ich auch im Opera und IE die Positionen abfragen kann?

    Danke! 🙂



  • Wenn ich das richtig sehe willst du eine Art Popup erscheinen lassen, welches sich dort befindet wo man gerade hingescrollt hat. Man kann in so ziemlich jedem Browser ermitteln wie weit man gescrollt hat. Schau mal dieses Script an: Lightbox JS

    Gruß



  • Hi, ja teilweise richtig. Ich möchte einfach an beliebigen Position Bereiche(div) verbergen und und bei einem Ereignis erscheinen lassen.

    Ich habe mittlerweile im Netz über Google ähnliche Probleme gefunden, leider keine Antwort. Aber der Weg zum Ziel war immer der Gleiche. Man muss an irgendeiner Stelle einen Bereich relativ und einen absolut positionieren. Nur dann sollen in allen Browsern die top und left Werte verfügbar sein. Kann das jemand vielleicht erklären, was ich relativ und was absolut positionieren müsste, damit man die offsetTop und offsetLeft Werte zur Verfügung hat?

    Was mir allerdings dabei unklar ist: Wie soll das funktionieren? Das ist dann doch Auflösungsabhängig und auch Schriftgrößenabhängig.

    Bin über jeden Tipp dankbar! 🙂



  • Ich habe es gelöst. Die Lösung war mal wieder viel einfacher als ich gedacht habe. Ich baue einfach die Bereiche absolut positioniert direkt in die Eltern-Elemente ein und setze diese danach nur noch visible. Durch das absolute Positionieren bleibt auch das normale Design erhalten! 🙂


Anmelden zum Antworten