Foros del Web » Creando para Internet » HTML »

Ayuda Urgente!!

Estas en el tema de Ayuda Urgente!! en el foro de HTML en Foros del Web. Hola amigos !! Tengo un problema y necesito resolverlo. Veréis. Trabajo con Dreamwaver y estoy diseñando una página con marcos. En uno de ellos tengo ...
  #1 (permalink)  
Antiguo 26/01/2003, 11:47
 
Fecha de Ingreso: noviembre-2002
Mensajes: 223
Antigüedad: 15 años
Puntos: 1
Ayuda Urgente!!

Hola amigos !! Tengo un problema y necesito resolverlo.

Veréis. Trabajo con Dreamwaver y estoy diseñando una página con marcos.

En uno de ellos tengo un menú, y en otro un texto con varias capas. Cuando el ratón se posiciona sobre cada una de las opciones del menú, se hace visible la capa correspondiente en el otro marco.

Aunque el texto donde estén las capas se mueva con las barras, la capa siempre aparece en el mismo sitio.Gracias a este foro, pude hacer esto. El código es el siguiente:

parent.MarcoTexto.document.getElementById('NombreC apa').style.top = parent.MarcoTexto.document.body.scrollTop+72;

(Este código lo incluyo en el marco donde tengo el menú)

El problema es que con Nestcape no se visualizan las capas. Con Explorer no hay ningún problema, pero en Nestscape no se ven las capas de ninguna manera, y yo necesito que se vean en ambos navegadores

¿Podéis decirme cómo puedo resolver el problema para que también se vean en Netscape?

Espero que podáis ayudarme. Muchas gracias por todo.
  #2 (permalink)  
Antiguo 27/01/2003, 11:53
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 9 meses
Puntos: 771
Hola, Liz26.

Este código funciona tanto en IE 6.0 como en NS 6.2:

document.getElementById("Layer1").style.visibility ='visible';

Si no te sirve podrías poner el código que utilizas para hacer visible las capas, a ver si a alguien se le ocurre alguna modificación para Nescafé.

Saludos,
  #3 (permalink)  
Antiguo 27/01/2003, 13:11
 
Fecha de Ingreso: noviembre-2002
Mensajes: 223
Antigüedad: 15 años
Puntos: 1
Gracias por contestar, JavierB

El problema que yo tengo no es con la visibilidad de las capas.

Lo que pretendo es que éstas aparezcan en una posición determinada del marco, independientemente de que haya subido o bajado el texto del marco donde se encuentran con las barras de desplazamiento.

La función que me inserta automáticamente Dreamweaver es:

function MM_showHideLayers() { //v3.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
obj.visibility=v;}

parent.MarcoTexto.document.getElementById('Layer1' ).style.top = parent.MarcoTexto.document.body.scrollTop+72;}


La línea del final es lo que me permite ver las capas en el mismo sitio, independientemente de que me mueva por el texto.


Si no la pongo, en el momento en que bajo con la barra, ya no las veo, y si lo pongo, en Explorer funciona, pero en Nestcape no.

Aysssss, ¿qué puedo hacer?
  #4 (permalink)  
Antiguo 27/01/2003, 14:17
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 9 meses
Puntos: 771
Hola de nuevo.

Ahora ya lo he entendido y además me he acordado que yo mismo plantee un tema similar. Tunait me proporcionó 2 enlaces, hice algunas pruebas y luego lo dejé un poco olvidado. Te los paso a ver si sacas algo en limpio:

http://www.siteexperts.com/tips/fun.../ts15/page1.asp
http://homepage2.nifty.com/BASH/WWW...ript/java4.html

Saludos,
  #5 (permalink)  
Antiguo 27/01/2003, 14:31
 
Fecha de Ingreso: noviembre-2002
Mensajes: 223
Antigüedad: 15 años
Puntos: 1
Pues si que estamos bien ... , una no se encuentra y la otra me sale en japonés ..... (Lo seguiré intentando)

De todas maneras, te agradezco un montón la ayuda y la molestia de contestarme.

Ayssss, espero que Tunait o alguna otra persona pueda darme alguna solución, porque la necesito realmente.


Gracias por todo JavierB.
  #6 (permalink)  
Antiguo 27/01/2003, 14:56
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Buenas,

la verdad es que no he metido la cuchara antes porque no entendí bien el tema. Viendo que en algún momento he sugerido algo que podría haber servido me hace suponer que, quizás si logro comprender el problema, pueda echar una mano.

Así que he releído los mensajes y la conclusión es que sigo sin comprender el problema exacto

Tienes un menú que se despliega en el marco contíguo. Hasta ahí llego. Pero la idea que tienes de lo que buscas cual es? lo tienes publicado en algún sitio para poder verlo??
  #7 (permalink)  
Antiguo 27/01/2003, 15:13
 
Fecha de Ingreso: noviembre-2002
Mensajes: 223
Antigüedad: 15 años
Puntos: 1
Gracias por contestarme Tunait. Espero que puedas ayudarme.

Vamos a ver si consigo explicarme bien.

Tengo una página con dos marcos, uno encima de otro. En el de arriba tengo un menú y en el de abajo un texto con unas capas invisibles originalmente.

Cuando el ratón se posiciona sobre cada opción del menú, se hace visible la capa correspondiente en el menú de abajo. Hasta ahí todo correcto.

Como el texto del menú de abajo es grande, lógicamente aparecen barras de desplazamiento. El problema que tenía es que al bajar con la barra, la capa ya no se veía porque ocupaba una posición concreta del marco de abajo y al bajar la barra, permanecía oculta la parte del marco donde estaba dicha capa.

Lo resolví (gracias a este foro), poniendo el código azul que he puesto antes y me funciona de maravilla en Explorer (la solución pasa por determinar la altura de la capa en función de la barra de desplazamiento), pero con Nestscape, al poner ese código, no se ven las capas, aunque no baje con la barra de desplazamiento, no se ven de ninguna manera.

Si omito ese código, me ocurre lo de antes, que si bajo el texto del menú inferiror con la barra, la capa desaparece.

Espero que hayas podido comprenderme. Si necesitas alguna otra aclaración no hay problema.

La página aún no está puesta, pero si no logro hacerme entender, no tengo ningún problema en enviartela.

Espero que puedas ayudarme. Muchas gracias por la paciencia.

Última edición por Liz26; 27/01/2003 a las 15:17
  #8 (permalink)  
Antiguo 27/01/2003, 15:19
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Ya voy teniendo más clara la idea, aún y así preferiría verlo.

Mándamela por correo a tunaita arroba hotmail.com

(fíjate que es tunaita con una a al final, no es que lo tecleé mál )
  #9 (permalink)  
Antiguo 27/01/2003, 15:30
 
Fecha de Ingreso: noviembre-2002
Mensajes: 223
Antigüedad: 15 años
Puntos: 1
Mil gracias Tunait. Mañana a primerísima hora te la envío, porque aquí no tengo el marco superior. No sabes lo que te agradezco todas las molestias que te estás tomando.

Mañana te la envío.

Hasta pronto!!!! y muchas gracias !!!
  #10 (permalink)  
Antiguo 27/01/2003, 15:32
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Muchas de nadas, a ver si lo podemos resolver.

Una cosa más... cuando dices que no se vé en Netscape... te refieres a la última versión??


Mañana a primera hora lo recojo del correo y te cuento


saludos


p.d. Mi primera hora de la mañana seguramente anda distante de tu primera hora
  #11 (permalink)  
Antiguo 28/01/2003, 11:34
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 9 meses
Puntos: 771
Hola de nuevo.

Liz26: no me había dado cuenta que una de las páginas ya no existía , pero me había copiado una parte en un fichero de texto y he hecho un ejemplo que podría servir:
Código PHP:
<html>
<
head>
<
script>
function 
testScroll() {
        if (
document.getElementById) {
    if (
window._pageYOffset==null) {window._pageYOffset window.pageYOffset}
    if (((
window.pageYOffset!=window._pageYOffset)) && (window.onscroll)) 
        
window.onscroll(window.pageYOffset)
    
window._pageYOffset window.pageYOffset
       setTimeout
("testScroll()",50)
      }
  }
    
  function 
doScroll(Y) {
    if (
document.all) {
        
document.getElementById('Layer1').style.top=document.body.scrollTop+10;
        
document.getElementById('Layer1').style.visibility document.body.scrollTop=='hidden' 'visible';}
        else {
        
document.getElementById('Layer1').style.top=Y+10
        document
.getElementById('Layer1').style.visibility Y=='hidden' 'visible';
        
//document.getElementById('val').value=Y;
        //document.getElementById('val').style.top=Y+10;
        
}
  }

  
window.onscroll doScroll
</script>

</head>

<body bgcolor="#FFFFFF" text="#000000" onLoad="testScroll()">
<div id="Layer1" style="position:absolute; width:20px; height:25px; z-index:1; border:1px solid green; left: 332px; top: 10px"></div>
</body>
</html> 
Repito que es solo un ejemplo, pero puede servir de punto de partida.

Cuentanos como te va. Saludos,
  #12 (permalink)  
Antiguo 28/01/2003, 11:56
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Hola Javier, muy buenas,

Te cuento que el problema de que en Netscape no se vean las capas está ocurriendo aún y sin hacer el scrollTop
Algo se ha "cruzado" dentro de esa página que no funciona la función MM_showHideLayers que es la que estaba usando para mostrar y ocultar capas.

Lo he resuelto sacando la función de Dreamweaver y añadiendo los cambios de visibilidad a las instrucciones de scrollTop metidas dentro de una función.
No ha hecho falta llamar a un setTimeout pues mientras las capas estén ocultas no importa que queden arriba o abajo. Simplemente se colocan cuando se llaman a la función en el evento onMouseOver.

Ha quedado algo así:

Código:
function ocultar(capa)
{
parent.General.document.getElementById(capa).style.visibility = 'hidden'
}
	
function mostrar(capa)
{
if(navigator.appName=="Netscape")
	{
	var scrollarriba=parent.General.window.pageYOffset ;
	}
else
	{
	var scrollarriba=parent.General.document.body.scrollTop ;
	}

	parent.General.document.getElementById(capa).style.top = scrollarriba + 90
	parent.General.document.getElementById(capa).style.visibility = 'visible'
	
}
Y en los items de su menú:

<td onMouseOver="mostrar('Capa1')" OnMouseOut="ocultar('Capa1')">

Y funciona ok


Liz, fijate que en el código fuente, en las td donde llamas a la clase te la llama así:

class="Men&uacute;sGenerales"

Además tienes ese estilo definido con un acento en la u.
Acuerdate de no usar acentos para evitarte problemos

Un saludo a ambos
  #13 (permalink)  
Antiguo 28/01/2003, 14:24
 
Fecha de Ingreso: noviembre-2002
Mensajes: 223
Antigüedad: 15 años
Puntos: 1
SIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIII
FUNCIONAAAAAAAAAAAAAAAAAAAAAAAAAA

Madre mía, cómo controláis de esto !!!!

Muchísimas gracias, de verdad. He probado tu código, Tunait, y se ven las capas perfectamente, tanto en Explorer como en Nestscape.

Gracias sobre todo por la paciencia y por la molestia que os habéis tomado, y sobre todo por dejarme aprender de vosotros.

Por lo que me has dicho, Tunait, supongo que muchos de los problemas que tengo se deben a mi manía de poner acentos a todo. A lo mejor por eso no se ven las líneas azules en Netscape que te comenté, ni tampoco en este navegador puedo ver el scrolll personalizado con otros colores como en Explorer.

Voy a probar a renombrar todo lo que lleve acentos y si no me funciona, os volveré a molestar con vuestro permiso.

¿También dará problemas los espacios en los nombres de los archivos?

Probaré a quitar los acentos y os cuento que tal.

Respecto a lo de las capas ... uffff!!!, me habéis ayudado un montón.

Mil gracias por todo.

Un saludo.

PD: Qué problema hay en llamar a la clase class="MenúsGenerales" ???? (aparte del acento, claro) (Veréis que soy una novatilla en esto)

GRACIAS
  #14 (permalink)  
Antiguo 28/01/2003, 14:40
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
jejeje qué bueno que te funcionó


Pueees respecto a los acentos, fíjate que si llamas a tu clase MenúsGenerales, pero luego la llamada la hace a men& uacute;sGenerales.

El & uacute; el navegador lo mostrará como ú, pero si te fijas no se parece demasiado al nombre de la clase. Es decir, más vale que intentes llamar a class="menúsGenerales".

De todas formas es mejor evitar, en todo lo posible, el uso de acentos o "caracteres extraños" (como ñ o ç) en lo que es código en sí. Para nosotros no son caracteres extraños, pero para la programación sí lo son.

Yo recomiendo siempre cuando nominemos a algo que haya que llamar, usar siempre minúscula, sin acentos, sin caracteres "raros" y sin espacios. Dependiendo del servidor donde alojes luego tu sitio puedes tener problemas.
Si te acostumbras a final no cuesta casi nada.

A veces no tenemos ese cuidado y resulta que no nos da problemas en el server, pero luego cambiamos de servidor y sí nos dá problemas y hemos de revisar todo de nuevo y cambiarlo, así que mejor de entrada hacerlo así y te ahorras problemas

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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:37.