Scroller de texto e imágenes
Una de las mayores exigencias de los diseñadores web consiste en obtener efectos gráficos atractivos sin superar límites razonables de peso en Kb de las páginas web. En el equilibrio de estos dos aspectos reside, probablemente, el secreto de la buena gráfica de los sitios web: correctas dosis de gráfica y funcionalidad. No existe una fórmula empírica que explique objetivamente dónde y cuándo se logra alcanzar este equilibrio. Existen, sin embargo, algunas medidas aconsejables que un elaborador debería adoptar al crear un sitio. La primera consiste en optimizar lo más posible las imágenes GIF o JPG, limitando su peso en Kb sin que sufra excesivamente la calidad. La segunda consiste en usar lo más frecuentemente posible texto HTML en lugar de imágenes, sobre todo para la creación de títulos y encabezamientos de página.
En este último punto, HTML dinámico acude en ayuda de los elaboradores con una serie de efectos especiales que mueven el texto en la dirección deseado evitando el uso de GIF animados o difuminan los colores evitando el uso de Applet Java.
Marquee es una marca HTML que permite el movimiento de simple texto dentro de un documento web. Introducida desde la versión 2.0 de MsIe, no se ha integrado nunca en Netscape, el cual no prevé ninguna marca con efectos similares. Su funcionamiento es muy sencillo y conlleva el uso de código Javascript o DHTML. Esta simplicidad queda confirmada por la presencia de marcas destinadas a personalizar el desplazamiento del texto. He aquí algunas:
<MARQUEE BEHAVIOR=SCROLL>HTMLpoint</MARQUEE>
Texto en movimiento de derecha a izquierda sin interrupciones:
<MARQUEE BEHAVIOR=SLIDE> HTMLpoint </MARQUEE>
Texto en movimiento desde la derecha con parada en el lado izquierdo
<MARQUEE BEHAVIOR=ALTERNATE> HTMLpoint </MARQUEE>
Texto en movimiento continuo de derecha a izquierda y viceversa
<MARQUEE BGCOLOR=red>HTMLpoint</MARQUEE>
Establece el color de fondo
<MARQUEE DIRECTION=RIGHT>HTMLpoint</MARQUEE>
Define la dirección del movimiento (en este caso de derecha a izquierda)
<MARQUEE HEIGHT=20 WIDTH=300>HTMLpoint</MARQUEE>
Altura (height) y anchura (width) en píxel.
<MARQUEE HSPACE=10 VSPACE=10>HTMLpoint</MARQUEE>
Distancia, en píxel, de los márgenes laterales (HSPACE) y superior e inferior (VSPACE)
<MARQUEE LOOP=5>HTMLpoint </MARQUEE>
Número de veces que pasa el texto. El parámetro puede impostarse en INFINITAS.
<MARQUEE SCROLLDELAY=5 SCROLLAMOUNT=2>HTMLpoint</MARQUEE>
Velocidad, en milésimas de segundo, de visualización de los mensajes.
En la versión 4 de MsIe el elemento MARQUEE se ha implementado con la adición de un modelo de objetos que reproduce cualquier código HTML. En Internet Explorer 4 es, por ejemplo, posible alternar el desplazamiento hacia arriba o hacia abajo, además de contener controles que responden a clic del ratón o pulsaciones del teclado. Todo esto gracias a tres eventos estándar: onstart, onbounce, onfinish.
Un ejemplo práctico de este nuevo enfoque del elemento MARQUEE sería:
<MARQUEE TITLE="Para interrumpir el desplazamiento, pulsa el botón del ratón" ONMOUSEDOWN="this.stop();" ONMOUSEUP="this.start();">
<INPUT TYPE=BUTTON VAlUE="haz clic aquí" ONCLICK="alerta('has pulsado');">
</MARQUEE>
Como hemos señalado antes, Netscape no reconoce la marca MARQUEE de manera que cuando la encuentra no produce ningún tipo de efecto dinámico. Mediante dynamic HTML es posible extender el efecto del movimiento de texto, tanto horizontal como vertical, también a este navegador.
El file "dhml01.htm se refiere a un efecto marquee crossbrowser con texto en movimiento de derecha a izquierda.
El código necesario para su funcionamiento debe insertarse en el cuerpo del documento, entre las marcas <BODY>. En parte, deberemos modificarlo según nuestras propias exigencias y, en parte, deberemos dejarlo inalterado.
var marqueewidth=350
Establece la anchura (width) en píxel de la parte de documento destinada a albergar el efecto marquee.
var marqueeheight=20
Este valor se refiere a la altura (height) en píxel de la parte de la página que alberga el efecto. Es válido sólo para Netscape, mientras que MsIe lo ignora.
var speed=6
Este valor se refiere a la velocidad de desplazamiento del texto. Cuanto mayor es el valor, mayor es la velocidad.
var marqueecontents='<B><font face="Arial"><a href="http://www.htmlpoint.com">HTMLpoint</a> el sitio italiano del web publishing</font></B>'
Este código identifica el contenido del mensaje en movimiento. Como podemos observar por el ejemplo, el texto está formateado según las reglas clásicas de HTML, con la posibilidad de insertar enlaces a recursos externos. Sólo tenemos que acordarnos de no insertar comillas simples, que pertenecen al código (contenido entre comillas simples) y hacen que aparezcan mensajes de error.
Además del texto podemos insertar también imágenes en el formato reconocido por los navegadores de mayor difusión. En el file "esempio02.htm" al texto visto antes se le agrega una imagen en formato GIF:
var marqueecontents='<IMG SRC="staticlogo.gif" WIDTH=150 HEIGHT=54 BORDER=0 align=middle hspace=10><B><a href="http://www.htmlpoint.com"></a><font face="Arial"> el sitio italiano del web publishing</font></B>'
El mismo efecto de desplazamiento del texto se puede obtener en sentido vertical, de abajo hacia arriba, con un código idéntico al anterior salvo por lo que se refiere a la sustitución con el valor "height" del valor "width". El file "esempio.03" muestra un ejemplo de desplazamiento vertical de texto e imágenes. Como en la demostración precedente, la única parte que hay que modificar es la que abre el código script del ejemplo:
var marqueewidth=200
var marqueeheight=120
var speed=2
var marqueecontents='<CENTER><IMG SRC="staticlogo.gif" WIDTH=150 HEIGHT=54 BORDER=0 align=middle hspace=10><BR><B><a href="http://inews.tecnet.it"></a><font face="Arial"> la primera y más difundida revista del sector</font></B></CENTER>'
Un efecto similar al último ejemplo de scroller vertical puede implementarse con un ulterior efecto gráfico que haga aún más fuerte el impacto visual.
Se trata de un efecto "fade", es decir de difuminación del texto, que desaparece progresivamente hasta llegar a confundirse con el color de fondo. El file "esempio04.htm" insertado en el cd-rom adjunto tiene un código más complejo de los vistos precedentemente pero sólo hay que modificar una pequeña parte del mismo:
var bgcolor="#FFFFFF";
Define el color que sirve de fondo al texto visualizado.
var color="#0000FF";
Establece el color del texto en movimiento de abajo hacia arriba.
Los mensajes que se visualizarán se numeran progresivamente y se insertan de la siguiente forma:
message[1]='el sitio'
message[2]='italiano'
message[3]='del web publishing'
message[4]='http://www.htmlpoint.com'
En este caso debemos también evitar introducir comillas simples si queremos que la demo produzca sus efectos.
Para añadir otros mensajes a los presentes, es suficiente insertar otras líneas de código con numeración progresiva:
message[5]='nuevo mensaje'
message[6]='nuevo mensaje'
message[7]='nuevo mensaje'
La formatación del texto es diferente para Netscape y MsIe debido a las consabidas divergencias relativas al acceso DOM (Document Object Model) de Dynamic HTML.
Para Netscape es necesario impostar el siguiente código:
document.layers['textanim'].document.writeln('<P Class="maen" Align="Center"><font color="'+rgb+'" size=4 face=arial>'+message[msg]+'</font>')
Por su parte, para MsIe la línea de código es:
textanim.innerHTML='<P Class="maen" Align="Center"><font color="'+rgb+'" size=4 face=arial>'+message[msg]+'</font>'
En ambos casos la formatación hace referencia a la hoja de estilo:
P.maen {
font-family : arial;
font-size : 16pt;
font-weight : bold;
}
</style>
La propiedad "innerHTML" define los contenidos de un elemento usando marcas. Esta propiedad, como innerText, outerHTML y outerTEXT, forma parte del mecanismo de HTML dinámico denominado "sustitución HTML". Dicho de otro modo, este enfoque se dirige a elementos HTML ya existentes, los cuales son considerados objetos que se pueden cambiar dinámicamente con script asociados a la página.
window.setTimeout('start()',1000);
Define el tiempo, expresado en milésimas de segundo, que separa una línea de mensaje de la sucesiva.
window.setTimeout('start()',2000);
Establece el tiempo, en milésimas de segundo, que separa las sucesivas visualizaciones del mensaje completo. A diferencia del anterior, que separaba cada una de las líneas del mensaje, este valor se refiere a todo el contenido del mismo.
Una vez impostado el código dentro de la marca , es necesario operar en el cuerpo del documento, insertando para MsIe y para Netscape por separado el código que invoca todo cuanto hemos impostado :
<Div id="textanim" style="position: absolute; left: 150; top: 200">
</Div>
Este código es reconocido por el navegador de Redmond y establece la posición absoluta del efecto dentro de la página.
<Layer name="textanim" left=150 top=200>
</Layer>
Este código invoca, por su parte, todo lo necesario para el funcionamiento de la demo con Netscape.
Para que el script funcione correctamente, debemos introducir en la marca el gestor de eventos "onLoad" que invoca la función "start()":
<BODY vlink="blue" onLoad="start()">
También en este caso es posible sustituir el texto con imágenes en formato GIF o JPG actuando en el código que imposta los mensajes:
message[1]='el sitio'
message[2]='italiano'
message[3]='del web publishing'
message[4]='<IMG SRC="staticlogo.gif" WIDTH=150 HEIGHT=54 BORDER=0>'
FECHA: Julio 25 2016