Waarom vind ik de properties toegekend in style block niet terug in het js-object ?

Status
Niet open voor verdere reacties.

MDN111

Gebruiker
Lid geworden
13 aug 2007
Berichten
503
Hallo !

Om een popup te gebruiken in een HTML file gebruik ik een variant afgeleid van http://www.pat-burt.com/web-development/how-to-do-a-css-popup-without-opening-a-new-window/ . De js-code daarin gebruikt echter absolute waarden voor de afmetingen van de popup-div. In het geval van die link is dat 300px voor zowel de hoogte als de breedte van de popup-div. Om de popup de positioneren berekent men de top en de left aan de hand van de afmetingen van de popup in verhouding tot de afmetingen van de viewport.

Ik wil echter een js-functie schrijven die de top en left van de popup-div berekent op aan de hand van de afmetingen van de popup-div ongeacht de waarde van die afmetingen, en daar loopt het fout. Na allerlei pogingen kom ik tot de volgende vaststelling: Als ik aan een div bepaalde properties toeken in een style-block, dan vind ik die properties niet terug in het js style object van die div. Ter verduidelijking hierna het style block uit het html-bestand (overbodige gegevens zijn weggelaten):

HTML:
<style type="text/css">
...
#popUpDiv {
...
left:200px;
top:150px;
width:750px;
height:520px;
}
</style>
Hierna de js-code (testversie):
(opmerking: de waarde van de parameter popupID is "popUpDiv", dus OK)

Code:
function SetPopup(popupID) {
var oPopupStyle = document.getElementById(popupID).style;
alert(oPopupStyle.left);
alert(oPopupStyle.top);
alert(oPopupStyle.height);
alert(oPopupStyle.width);
}

De waarden van alle vier de alerts() blijken een null string te zijn, wat ik ook terugvind in de debugger. Vandaar m'n cruciale vraag:

Waarom vind ik de waarden van properties, toegekend in een style block niet terug in het js-object ?

Grtz,
MDN111.
 

Bijlagen

  • Screenshot.jpg
    Screenshot.jpg
    103,5 KB · Weergaven: 15
Laatst bewerkt:
Dag Tha Devil,

Bedankt voor je reactie.

Na m'n post heb ik nog wat verder geprobeerd en inderdaad, alleen de inline styles zijn bereikbaar.
Een beetje vreemd, maar ja, zo zit het blijkbaar in elkaar.
Om m'n probleem op te lossen heb ik gewoon de properties van de popup-div inline gedefinieerd en dat werkt.

Grtz,
MDN111.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan