Creating Tree Menu Structures in JavaScript Practice
Learn how to create hierarchical tree menus in JavaScript for interactive web navigation. Practice creating dropdown menus with ease.
Creating Tree Menu Structures in JavaScript Practice
E N D
Presentation Transcript
7. Gyakorlat • DHTML • Fa-struktúrájú menük létrehozása • Legördülő menük létrehozása
JS0701.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml" xml:lang="hu" lang="hu"> <head><title>7.1 feladat</title> <styletype="text/css"> a {text-decoration: none;} #contact, #support, #products { display:none; margin-left:2em; } </style> <script type="text/javascript" src="JS0701.js"></script> </head> <body> <h1>7.1 feladat</h1> <p>Légy üdvözölve!</p> <hr />… Fa-struktúráju menük létrehozása
… <div> <b><a id="xproducts" href="javascript:Toggle('products');">[+]</a> Termékek</b><br /> <divid="products"> <a href="prodlist.html">Terméklista</a><br /> <a href="order.html">Rendelés</a><br /> <a href="pricelist.html">Árlista</a><br /> </div> <b><a id="xsupport" href="javascript:Toggle('support');">[+]</a> Támogatás</b><br /> <divid="support"> <a href="sforum.html">Fórum</a><br /> <a href="sforum.html">Kapcsolat</a><br /> </div> <b><a id="xcontact" href="javascript:Toggle('contact');">[+]</a> Kapcsolatfelvétel</b> <divid="contact"> <a href="contact1.html">Szervízcsoport</a><br /> <a href="contact2.html">Értékesítés</a><br /> </div> </div> </body> </html> JS0701.html
JS0701.js //JavaScript functionToggle(item) { obj=document.getElementById(item); visible=(obj.style.display!="block") key=document.getElementById("x" + item); if (visible) { obj.style.display="block"; key.innerHTML="[+]"; } else { obj.style.display="none"; key.innerHTML="[-]"; } } Fa-struktúráju menük létrehozása
JS0702.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml" xml:lang="hu" lang="hu"> <head> <title>7.2 feladat</title> <script type="text/javascript" src="JS0702.js"></script> <styletype="text/css"> body { margin-left: 0; margin-top: 0; } td { background-color: silver; width: 100; } div { position: absolute; visibility: hidden; } </style> </head> <body> <tableborder="0" cellpadding="4"> <tr><tdid="menu-products" onmouseover="Menu('products');" onmouseout="Timeout('products');"> <a href="products.html"><b>Termékek</b></a> </td> <tdid="menu-sales" onmouseover="Menu('sales');" onmouseout="Timeout('sales');"> <a href="sales.html"><b>Értékesítés</b></a> </td> <tdid="menu-service" onmouseover="Menu('service');" onmouseout="Timeout('service');"> <a href="service.html"><b>Szervíz</b></a> </td> </tr> </table> …
…<divid="products" > <tablewidth="100%" border="0" cellpadding="4" cellspacing="0"> <tr> <tdid="p1" onmouseover="Highlight('products','p1');" onmouseout="UnHighlight('products','p1');"> <a href="equip.html">Berendezések</a></td> </tr> <tr> <tdid="p2" onmouseover="Highlight('products','p2');"onmouseout="UnHighlight('products','p2');"> <a href="supplies.html">Egyéb eszközök</a></td></tr> </table> </div> <divid="sales"> <tablewidth="100%" border="0" cellpadding="4" cellspacing="0"> <tr> <tdid="s1" onmouseover="Highlight('sales','s1');" onmouseout="UnHighlight('sales','s1');"> <a href="prices.html">Árlista</a></td></tr> <tr> <tdid="s2" onmouseover="Highlight('sales','s2');" onmouseout="UnHighlight('sales','s2');"> <a href="order.html">Megrendelés</a></td></tr> <tr> <tdid="s3" onmouseover="Highlight('sales','s3');" onmouseout="UnHighlight('sales','s3');"> <a href="specials.html">Egyéb</a></td></tr> </table> </div>… JS0702.html
JS0702.html <divid="service" > <tablewidth="100%" border="0" cellpadding="4" cellspacing="0"> <tr> <tdid="r1" onmouseover="Highlight('service','r1');" onmouseout="UnHighlight('service','r1');"> <a href="support.html">Támogatás</a></td></tr> <tr> <tdid="r2" onmouseover="Highlight('service','r2');" onmouseout="UnHighlight('service','r2');"> <a href="cservice.html">Kapcsolatfelvétel</a></td></tr> </table> </div> <h1>7.2 feladat</h1> <p>Légy üdvözölve!</p> </body> </html> Legördülő menük létrehozása
//JavaScript var inmenu=false; var lastmenu=0; function Menu(current) { if (!document.getElementById) return; inmenu=true; oldmenu=lastmenu; lastmenu=current; if (oldmenu) Erase(oldmenu); m=document.getElementById("menu-" + current); box=document.getElementById(current); box.style.left= m.offsetLeft; box.style.top= m.offsetTop + m.offsetHeight; box.style.visibility="visible"; m.style.backgroundColor="Aqua"; box.style.backgroundColor="Aqua"; box.style.width="108px"; }… JS0702.js Legördülő menük létrehozása
JS0702.js … function Erase(current) { if (!document.getElementById) return; if (inmenu && lastmenu==current) return; m=document.getElementById("menu-" + current); box=document.getElementById(current); box.style.visibility="hidden"; m.style.backgroundColor="Silver"; } function Timeout(current) { inmenu=false; window.setTimeout("Erase('" + current + "');",500); } … Legördülő menük létrehozása
JS0702.js … function Highlight(menu,item) { if (!document.getElementById) return; inmenu=true; lastmenu=menu; obj=document.getElementById(item); obj.style.backgroundColor="Silver"; } function UnHighlight(menu,item) { if (!document.getElementById) return; Timeout(menu); obj=document.getElementById(item); obj.style.backgroundColor="Aqua"; } Legördülő menük létrehozása
8. Gyakorlat • Sütik
Sütik használata • cookie-k segítségével változókat tárolhatunk a felhasználó számítógépén • fontosabb adatok megjegyzésére szolgál • biztonságtechnikai szempontból elég ellentmondásos, de megfelelő használat mellet nagyon hasznos • a tarolt adatok a sütik szavatosságáig érhetőek el, a szavatosságot is mi adjuk meg • kiválóan alkalmas példaul arra hogy felismerjünk egy oldalunkra visszalátogató egyént
Sütik használata • beállítás: • mindig egy adott weboldalra vonatkozik • pl.: name=window.prompt("Please enter your name",""); d = new Date(); d.setFullYear(d.getFullYear() + 1); expires="expires=" + d.toGMTString(); document.cookie="Username=" + name + "; " + expires; • beolvasás: • meg kell nézni a document.cookie értéket • ez a tulajdonság tartalmazza az összes süti értekét, szöveges azonosítók segítségével tudjuk azokat megtalálni • pl.: cookies=document.cookie; startpos=cookies.indexOf("Username")+9; endpos=cookies.indexOf(";",startpos); if (endpos==-1) endpos=cookies.length; name=cookies.substring(startpos,endpos);
JS0801.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head><title>8.1 feladat</title> </head> <body> <h1>8.1 feladat</h1> <script type="text/javascript" src="JS0801.js"></script> <p>Légy üdvözölve!</p> </body> </html> Sütik használata
JS0801.js //JavaScript cookies=document.cookie; alert(cookies); startpos=cookies.indexOf("Username")+9; if (startpos<9) { // Nincs beállítva a süti name=window.prompt("Kérjük, adja meg a nevét!",""); d = new Date(); d.setFullYear(d.getFullYear() + 1); expires="expires=" + d.toGMTString(); document.cookie="Username=" + name + "; " + expires; document.write("<h2>Üdvözöljök, " + name + "!</h2>"); } else { // Megtaláltuk a sütit endpos=cookies.indexOf(";",startpos); if (endpos==-1) endpos=cookies.length; name=cookies.substring(startpos,endpos); document.write("<h2>Üdvözöljük ismét, " + name + "!</h2>"); } Sütik használata