Foros del Web » Programando para Internet » Javascript »

Cabecera HTML

Estas en el tema de Cabecera HTML en el foro de Javascript en Foros del Web. Hola, No se si este hilo corresponde a (X)HTML, pero la puse aquí por mi segunda pregunta que tiene un Script: Me ha interesado cómo ...
  #1 (permalink)  
Antiguo 31/12/2007, 07:20
 
Fecha de Ingreso: noviembre-2004
Ubicación: La Paz
Mensajes: 100
Antigüedad: 20 años, 2 meses
Puntos: 0
Exclamación Cabecera HTML

Hola,
No se si este hilo corresponde a (X)HTML, pero la puse aquí por mi segunda pregunta que tiene un Script:
Me ha interesado cómo obtuvieron fijar un logo inamovible en esta página:
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<
html>
<
style type="text/css">
#logo {
    
Z-INDEX1LEFT0pxMARGIN0pxCOLORwhitePOSITIONabsoluteTOP0px
}
[
id]#logo {
    
POSITIONfixed
}
</
style>
<
body>
<
P id=logo><A title=Home href="http://coding.derkeiler.com/"><IMG title=Home 
height
=308 alt=derkeiler.com src="logo.png" width=77 border=0></A></P>
</
body>
</
html
PRIMERO.-El código trabaja muy bien en IE7 pero:
1.- En IE6 no funciona ¿Por qué?
2.- En IE7 si de la cabecera le quito: "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
y solamente le dejo:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
Tampoco funciona ¿Por qué?

SEGUNDO.-
El Script de abajo que encontre de tantos ejemplos en la Red:
Código PHP:
if (document.all) {
yourLogo "Mouse Orbital - "
logoFont "Arial";
logoColor "FFFFFF";
yourLogo yourLogo.split(''); 
yourLogo.length
TrigSplit 360 L
Sz = new Array()
logoWidth 60
logoHeight = -30
ypos 0
xpos 0
step 0.03
currStep 0
document.write('<div id="outer" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (
0Li++) {
    
document.write('<div id="ie" style="position:absolute;top:0px;left:0px;'
    
+'width:10px;height:10px;font-family:'+logoFont+';font-size:12px;'
    
+'color:'+logoColor+';text-align:center">'+yourLogo[i]+'</div>');
}
document.write('</div></div>');
function 
Mouse() {
ypos event.y;   
xpos event.5;  
}
document.onmousemove=Mouse;
function 
animateLogo() {
    
outer.style.pixelTop document.body.scrollTop;  
    for (
0Li++) {  
        
ie[i].style.top ypos logoHeight Math.sin(currStep TrigSplit Math.PI 180);
        
ie[i].style.left xpos logoWidth Math.cos(currStep TrigSplit Math.PI 180);
        
Sz[i] = ie[i].style.pixelTop ypos
        if (
Sz[i] < 5
            
Sz[i] = 5
        
ie[i].style.fontSize Sz[i] / 1.7
    }
    
currStep -= step
    
setTimeout('animateLogo()'20); 
}
window.onload animateLogo;

Si coloco en la Cabececera:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
Este interesante efecto funciona siguiendo al Mouse pero.... cuando se hace Scroll de la Página con la rueda Central del Mouse: El EFECTO del Script NO SIGUE al Mouse ¿Por qué?

Sin embargo si QUITO toda la cabecera, o sea borro todo el:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
¡Funciona perfectamente!! ¿Por qué? el efecto sigue al mouse, y con el scroll tampoco se hace problemas.

Entonces resumiendo:
¿Cómo entender esto de las Cabeceras? ¿Cómo darse cuenta para los ejemplos que menciono: ¿Cuando utilizar uno de otro?
En la primera pregunta estoy suponiendo que el IE6 no tiene esa capacidad para mantener fijo el logo?
Pero ¿por qué al borrar como mencioné UNA PARTE de la cabecera tampoco funciona en IE7?
En la segunda pregunta mas extraño aún, si quito toda, pero toda la cabecera, funciona muy bien el Script, y ¿Por qué NO así con cabecera?

Última edición por Deiv; 31/12/2007 a las 07:29
  #2 (permalink)  
Antiguo 02/01/2008, 17:35
 
Fecha de Ingreso: noviembre-2004
Ubicación: La Paz
Mensajes: 100
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Cabecera HTML

Alguna orientación?
  #3 (permalink)  
Antiguo 10/01/2008, 17:30
 
Fecha de Ingreso: noviembre-2004
Ubicación: La Paz
Mensajes: 100
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Cabecera HTML

¿Ninguna orientación del por qué?
  #4 (permalink)  
Antiguo 11/01/2008, 03:43
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 7 meses
Puntos: 834
Re: Cabecera HTML

Bueno, un par de cosas: ie 6 ignora el posicionamiento fixed. El movimiento de la rueda se captura con window.onmousewheel o con elemento.DOMMouseScroll.
La posición horizontal del mouse se mide con evento.clientX (o evento.clientY para vertical), pero es la posición respecto de la porción visible de la ventana (viewport), hay que agregarle, para obtener la posición absoluta dentro de la página, cuánto se desplazó el scroll, que en todos los navegadores excepto explorer se calcula con window.pageXOffset o window.pageYOffset, y en explorer se calcula con scrollTop/scrollLeft.
Código PHP:
<script>
function(
e){
e=|| window.event;
x=(e.clientX+self.pageXOffset) || (e.clientX+document.documentElement.scrollLeft+document.body.scrollLeft);
y=(e.clientY+self.pageYOffset) ||  (e.clientY+document.documentElement.scrollTop+document.body.scrollTop);
}
</script> 
También se obtiene lo mismo así:
Código PHP:
<script>
function(
e){
e=|| window.event;
x=(e.pageX) || (e.clientX+document.documentElement.scrollLeft+document.body.scrollLeft);
y=(e.pageY) ||  (e.clientY+document.documentElement.scrollTop+document.body.scrollTop);
}
</script> 
Ahora, fijate en esto: document.documentElement.scrollLeft+document.body. scrollLeft. Esto se debe a que diferentes versiones de explorer le asignan el valor de la propiedad scrollTop o scrollLeft al body o al html alternativamente (por suerte, siempre el otro vale cero, de manera que sumándolos obtenemos siempre el correcto), y esta asignación de valores no sólo depende de la versión de Explorer, sino que también va en dependencia de uno u otro doctype (strict mode o quirks mode)

Última edición por Panino5001; 11/01/2008 a las 03:52
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:30.