210 likes | 312 Views
This article delves into the fundamentals of DHTML, focusing on Document Object Model (DOM) manipulation using HTML 4.0 and JavaScript. It covers accessing individual document objects, dynamic CSS styling, and event-driven programming to create interactive web pages. Learn how to use JavaScript functions to modify styles on mouse events and implement features like hover effects for links and dynamic table cell highlights. Additionally, it provides guidance on browser detection and implementing dropdown menus, enhancing your web development skills for creative designs.
E N D
DHTML & ALPHABET SOUP Sp.772 spring 2002
A combination • Html 4.0 • Javascript • The document object model (DOM) -- accessing individual document objects • Cascading style sheets -- separation of form and content • Netscape 6, IE 5.5/6
DOM • Document.images[] accesses all the images in a document (we’ve seen it in billboard type image-displays) • Suppose we want to access headings, paragraphs, and individual words • <p id=“simple”>simple paragraph</p> • In javascript: var para = document.getElementByID(“simple”)
getElementsby… • Var headings = document.getElementsByTagName(“h1”); • Var secondheading = headings[2]
CSS • The element of style • Para.style.color = “#00FF00”; • Changes the paragraph to green • Other properties: style.font-size style.font-family style.background-color, style.background-image
Rollover link color changes <style> a {text-decoration: none; color: #0000FF; } </style> <script language=“javascript”> Function turnOn(currentLink) { CurrentLink.style.color = “#990000”; CurrentLink.style.textDecoration = “underline”;}
Continued… • Function turnOff(currentlink) { currentLink.style.color = “#0000FF”; currentLink.style.textDecoration = “none”;} </script> <head> <a href=“home.html” onMouseOver=“turnOn(this);” onMouseOut = “turnOff(this);”> home </a>
..explained • When the users’ mouse goes over a link the event handler passes it to turnOn, modifying the style of the current link • Note that values for style elements are specified as strings (e.g. “underline”)
A dynamic CSS toolbar..hang on! • Highlights cells of a table • Html for a cell: • <td class = “toolbar” id = “news” width -= “120”> <a href=“#” onMouseOver=“linkOn(this, ‘news’);” • onMouseOut = “linkOff(this, ‘news’);”> News! </a> </td>
linkOn • Function linkOn(currentLink, cell) { currentLink.style.color = “#990000”; currentLink.style.fontWeight = “bold”; currentLink.style.textDecoration = “underline”; Var CurrentCell = document.getElementById(cell); currentCell.style.backgroundColor=“#CCCCCC”; }
linkOff • Function linkOn(currentLink, cell) { currentLink.style.color = “#FFFFFF”; currentLink.style.fontWeight = “normal”; currentLink.style.textDecoration = “none”; Var CurrentCell = document.getElementById(cell); currentCell.style.backgroundColor=“#666666”; }
The header • <style type=“text/css”> a {font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #FFFFFF; text-decoration: none;} . toolbar { background-color: #666666;} </style>
style classes • <style type=“text/css”> .welcome { font-family….} </style> …. <p class=“welcome”>Welcome to Bill’s World!</p>
Layers • A positionable container (like photoshop) • x,y,z dimensions • z dimension points out at the user • <div id=“MyLayer” style = “position.absolute;z-index:1; left:100px;top:10px; width:300px;height:30px; background-color: #FFCC00;”>
div attributes • position: can be absolute or relative (to any containing elemnt) • left: distance from left edge of document/containing element (eg 100px) • top: distance from top..(in pixels, too) • z-index: stacking order of display if layers are overlapping. higher numbers win. elements without a z-index lose
Tabbed Folders (a la Hotmail) • visibility:visible • visibility:hidden • have some function keep track of the current tab and the moused-over newtab, change their visibilities appropriately
Browser Detection • if (document.getElementById) {isDOM = true;} else if(parseInt(navigator.appVersion) >= 4) { if(navigator.appName == “Netscape”) {isNN4 = true;} else if (navigator.appName==“Microsoft Internet Explorer”) {isIE4= true;}
Drop Down Menu Example • <td width=“100”> • <div id = “linksLayer” style=“position:absolute;left:211px….visibility:hidden;z-index:2”> • <a href=“#”>DHTML</a><br> • <a href=“#>CSS</a><br> </div> <a href=“#” onClick=showLayer(‘linksLayer’);” onDblClick=“hideLayer(‘linksLayer’);”>Links</a> </td>
show/hideLayer • function showLayer(layerid) { • var layer=document.getElementByID(layerid); • layer.style.visibility = “visible”;} • function hideLayer(layerid) { • var layer=document.getElementByID(layerid); • layer.style.visibility = “hidden”;}
more info • w3c.org/style • w3c.org/dom
Exercise… • drop linkys • WEDNESDAY: SHIGERU MIYAGAWA • GUEST LECTURES!!!!!!!!!!! WILL BE FUN. • UROP OPPRTUNITIES ABOUND! • REMINDER: • May 15th FINAL PROJECTS DUE • AT LEAST ONE MEMBER FROM EACHGROUP MUST GO TO PRESENT THAT NIGHT. 7:30pm