Introducción al desarrollo web DOM http://idesweb.es/ DHTML: Parte 2 Laura Sirvent Collado Estudiante de Ingeniería Multimedia Universidad de Alicante (España) IDW-DOM-DHTML-2 Introducción al desarrollo web http://idesweb.es/ DOM Contacto • http://www.7-days.es • [email protected] Introducción al desarrollo web http://idesweb.es/ DOM DHTML • Dynamic HTML (HTML Dinámico) • HTML + CSS + Javascript + DOM • Páginas web interactivas Introducción al desarrollo web http://idesweb.es/ DOM Ejemplo práctico 1 • Efecto “ola”: Destacar una letra de un párrafo cada tiempo. Introducción al desarrollo web http://idesweb.es/ DOM Ejemplo práctico 1 • El código no es el más eficiente, pero sí el más fácil de entender. • Una vez hecho, se debe pensar formas de optimizarlo. Introducción al desarrollo web http://idesweb.es/ HTML <html> DOM <head> <script type="text/javascript" src="ola.js"></script> </head> <body onload="iniciar()"> <p id="ola">Este texto tiene un efecto ola.</p> </body> </html> Introducción al desarrollo web http://idesweb.es/ Javascript (ola.js) DOM var obj, dir; function iniciar() { var txt = document.getElementById("ola").innerHTML; var letras = txt.split(""); var res = ""; for(var i = 0; i < letras.length; i++) res += "<span>" + letras[i] + "</span>"; document.getElementById("ola").innerHTML = res; obj = document.getElementById("ola").firstChild; dir = 1; setInterval("efecto()", 100); } Introducción al desarrollo web http://idesweb.es/ DOM Javascript (ola.js) var txt = document.getElementById("ola").innerHTML; Introducción al desarrollo web http://idesweb.es/ DOM Javascript (ola.js) var letras = txt.split(""); var res = ""; for(var i = 0; i < letras.length; i++){ res += "<span>" + letras[i] + "</span>”; } Introducción al desarrollo web http://idesweb.es/ DOM Javascript (ola.js) document.getElementById("ola").innerHTML = res; obj = document.getElementById("ola").firstChild; dir = 1; Introducción al desarrollo web http://idesweb.es/ DOM Javascript (ola.js) setInterval("efecto()", 100); Introducción al desarrollo web http://idesweb.es/ DOM Javascript (ola.js) function efecto(){ obj.style.color = "black"; if(dir == 1){ if(obj.nextSibling != null) obj = obj.nextSibling; else dir = 0; } else{ if(obj.previousSibling != null) obj = obj.previousSibling; else dir = 1; } obj.style.color = "red"; } Introducción al desarrollo web http://idesweb.es/ DOM Javascript (ola.js) obj.style.color = "black"; Introducción al desarrollo web http://idesweb.es/ DOM Javascript (ola.js) if(dir == 1){ if(obj.nextSibling != null) obj = obj.nextSibling; else dir = 0; } Introducción al desarrollo web http://idesweb.es/ Javascript (ola.js) DOM else{ if(obj.previousSibling != null) obj = obj.previousSibling; else dir = 1; } Introducción al desarrollo web http://idesweb.es/ DOM Javascript (ola.js) obj.style.color = "red"; Introducción al desarrollo web http://idesweb.es/ DOM Javascript (ola.js) • iniciar(): Recoge el párrafo del documento HTML y lo separa por letras y llama a efecto() cada 100ms • efecto(): Cambia el color de una letra, y busca la letra siguiente, para la siguiente llamada a la función Introducción al desarrollo web http://idesweb.es/ DOM Efecto Ola <p id="ola">Este texto tiene un efecto ola.</p> <span style=“color: black;” >E</span> <span style=“color: black;” >s</span> <span style=“color: black;” >t</span> <span style=“color: black;” >e</span> <span style=“color: black;” ></span> <span style=“color: black;” >t</span> <span style=“color: black;” >e</span> <span style=“color: red;” >x</span> <span style=“color: black;” >t</span> <span style=“color: black;” >o</span> <span style=“color: black;” ></span> <span style=“color: black;” >t</span> <span style=“color: black;” >i</span> <span style=“color: black;” >e</span> <span style=“color: black;” >n</span> <span style=“color: black;” >e</span> (…) Introducción al desarrollo web http://idesweb.es/ DOM Efecto Ola • HTML: Parte “estática”, contenido que se va a modificar. Introducción al desarrollo web http://idesweb.es/ DOM Efecto Ola • Javascript: Parte “lógica”, llamadas a funciones, llamadas cada cierto tiempo. Introducción al desarrollo web http://idesweb.es/ DOM Efecto Ola • DOM: Funciones para poder acceder al HTML: – Cambiar su contenido: Dividir párrafo en spans – Aspecto visual: Color de las letras. Actúa como “intermediario” entre HTML (parte estática) y Javascript (parte lógica) Introducción al desarrollo web http://idesweb.es/ DOM Efecto Ola • CSS: Parte “visual”,se modifica para que el usuario vea el cambio. Introducción al desarrollo web http://idesweb.es/ DOM http://idesweb.es/ [email protected] @idesweb