Programming the World Wide Web

Fejezet

6

6.7. Elemek egymásra helyezése

A top és left tulajdonságok segítségével, a böngészőablak két dimenzióját tekintve, az elemeket gyakorlatilag bárhova elhelyezhetjük. Annak ellenére, hogy a megjelenítés két fizikai dimenzióra korlátozott, lehetőségünk van a harmadik dimenzió érzetének keltésére, ha az elemeket egymásra helyezzük, akárcsak a grafikus felületen a különböző ablakokat. Amennyiben több elem ugyanazt a helyet foglalja el a dokumentumban, ezek közül csak egyet tekintünk „legfelsőnek”, és ez lesz megjelenítve. A felső elem elrejti az alatta elhelyezkedő elemeknek azt a részét, amelyek fölé van helyezve. Az elemeknek ebben a harmadik dimenzióban történő elrendezését az elem z-index attribútuma határozza meg. Az az elem, amelyiknek a z-index attribútumértéke nagyobb, mint egy ugyanazon a helyen elhelyezett másik elemé, a kisebb z-index-ű elem fölött fog elhelyezkedni, gyakorlatilag elrejtve azt. A z-index attribútumnak megfelelő JavaScript tulajdonság neve zIndex.

A következő példa három képet jelenít meg úgy, hogy azok részben átfedik egymást. Az XHTML leírásban mindegyik képnek megfelelő img elemnek van egy onclick attribútuma, melynek hatására egy JavaScript függvény fog meghívódni. A függvény előbb meghatározza a régi- illetve új „legfelső kép” DOM-beli címét. Ezt követően a függvény a két kiválasztott elem zIndex értékét módosítja úgy, hogy a régi legfelső elemé 0, az őjé pedig 10 lesz, és ezzel az új elem valóban legfelülre kerül. A script a topImg globális változóban jegyzi meg, hogy melyik az aktuális legfelső elem, és ezt az értéket aktualizálja, valahányszor egy új elem kerül legfelülre a toTop függvényhívás által.

Megfigyelhetjük, hogy a zIndex érték egy karaktersor, akárcsak a többi tulajdonság. A stacking.html nevű dokumentum és a hozzá tartozó JavaScript állomány a következő:

<?xml version="1.0" enconding="utf-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtmll-strict.dtd"> <!--stacking.html stacking.js-t használja Elemek egymásra helyezését mutatja be --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Elemek egymásra helyezése </title> <script type="text/javascript" src="stacking.js" > </script> <style type="text/css"> .style1 {position: absolute; top: 0; left: 0; z-index: 0;} .style2 {position: absolute; top: 50px; left: 110px; z-index: 0;} .style3 {position: absolute; top: 100px; left: 220px; z-index: 0;} </style> </head> <body> <p> <img class="style1" id="pic1" src="images/sample1.jpg" onclick="toTop('pic1')"/> <img class="style2" id="pic2" src="images/sample2.jpg" onclick="toTop('pic2')"/> <img class="style3" id="pic3" src="images/sample3.jpg" onclick="toTop('pic3')"/> </p> </body> </html> // stacking.js // Képek egymásra helyezését valósítja meg var topImg = "pic1"; function toTop(newTop) { var domTop = document.getElementById(topImg).style; var domNew = document.getElementById(newTop).style; domTop.zIndex = "0"; domNew.zIndex = "10"; topImg = newTop; }

A 6.9. ábra a stacking.html dokumentumot jeleníti meg:

Ugrás az oldal tetejére