Foros del Web » Programando para Internet » Javascript »

texto dinamico en capa

Estas en el tema de texto dinamico en capa en el foro de Javascript en Foros del Web. Hola. Tengo una capa en la que de forma dinamica pongo texto segun la opcion elegida. Como el texto es mayor que el alto de ...
  #1 (permalink)  
Antiguo 10/02/2005, 15:52
 
Fecha de Ingreso: diciembre-2004
Ubicación: Malaga
Mensajes: 115
Antigüedad: 19 años, 4 meses
Puntos: 0
texto dinamico en capa

Hola.

Tengo una capa en la que de forma dinamica pongo texto segun la opcion elegida. Como el texto es mayor que el alto de la capa pues le pongo auto para que salga la barra vertical en caso necesario. Imaginemos que damos a la opcion 1 y movemos la barra de desplazamiento vertical un poco hacia abajo. Luego le damos a la opcion 2 y nos cambia el contenido de la capa pero el problema es que la barra queda donde la habiamos dejado. Es decir no se ve el contenido desde el principio. Para verlo habria que subir la barra.
Como se hace para que cuando yo cambie el contenido de la capa se vea desde el principio siempre sin tener que mover la barra de desplazamiento hacia arriba en el caso en que se hubiera movido en una lectura de un contenido anterior de la capa.

Gracias.
  #2 (permalink)  
Antiguo 10/02/2005, 20:20
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 21 años, 9 meses
Puntos: 0
Podés poner un poco de código para verlo?
Saludos
  #3 (permalink)  
Antiguo 10/02/2005, 23:08
 
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 320
Antigüedad: 20 años, 5 meses
Puntos: 0
A Isabel_Maria le pasa lo mismo que a mí en el diseño nuevo de mi blog. Pero poner código, uf, yo tengo demasiado como para marearos con él aquí y no sacar nada en claro.

Lo que nos hace falta, creo yo, es precisamente un trozo de código que devuelva el scroll a la posición inicial al cambiar de capa. Yo me había dado por vencida y pensaba que era algo que no se podía cambiar.

¿Se puede?
  #4 (permalink)  
Antiguo 10/02/2005, 23:13
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 21 años, 9 meses
Puntos: 0
Bueno, después de buscar bastante y de volver a leer un par de apuntes que tenía sobre DOM pude (bah, creo, espero haber entendido bien lo que se necesitaba )
Saludos, espero sirva

Código HTML:
<html>
<head>
<script language="JavaScript1.2">
function cambiar() {
	var box, text;
	box = document.getElementById("box");
	text = box.childNodes[0];
	box.scrollTop = 0;
	text.data = "Como se hace para que cuando yo cambie el contenido de la capa se vea desde el principio siempre sin tener que mover la barra de desplazamiento hacia arriba en el caso en que se hubiera movido en una lectura de un contenido anterior de la capa.";
}
</script>
<style type="text/css">
.box {
	background-color: #ebebeb;
	height: 150px;
	overflow: auto;
	vertical-align: top;
	width: 150px;
}
</style>
</head>
<body id="body">

<div class="box" id="box">
Tengo una capa en la que de forma dinamica pongo texto segun la opcion elegida. Como el texto es mayor que el alto de la capa pues le pongo auto para que salga la barra vertical en caso necesario. Imaginemos que damos a la opcion 1 y movemos la barra de desplazamiento vertical un poco hacia abajo. Luego le damos a la opcion 2 y nos cambia el contenido de la capa pero el problema es que la barra queda donde la habiamos dejado. Es decir no se ve el contenido desde el principio. Para verlo habria que subir la barra.
</div>
<a href="#" onClick="javascript:cambiar()">Cambiar Texto</a>
</body>
</html> 
  #5 (permalink)  
Antiguo 10/02/2005, 23:19
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 21 años, 9 meses
Puntos: 0
Testeado en IE 5, 5.5, 6, Firefox 1.0, Mozilla 1.6, Netscape 7.1 y Opera 7.23
Sólo vi que no me funcionó en Netscape 6.2, pero debe haber alguna propiedad equivalente para ese navegador, si la encuentro, pongo que hay que modificar...
Saludos, suerte
  #6 (permalink)  
Antiguo 11/02/2005, 02:47
 
Fecha de Ingreso: diciembre-2004
Ubicación: Malaga
Mensajes: 115
Antigüedad: 19 años, 4 meses
Puntos: 0
Te pongo un ejemplo.
El codigo que pones aun no lo he probado pero dado que utilizo el codigo que pongo en muchos sitios antes que nada quiero que veas cual es este codigo por si asi resulte mas facil de cambiar algo.
Situa el cursor de la barra de desplazamiento en el centro y pulsa en cambio y veras que no se devuelve al principio.
http://perso.wanadoo.es/alpar500/barra/

Última edición por Isabel_Maria; 11/02/2005 a las 02:50
  #7 (permalink)  
Antiguo 11/02/2005, 03:21
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 21 años, 9 meses
Puntos: 0
Si, veo tu código... no usa la propiedad scrollTop, por eso no vuelve... igualmente las funciones que usás parecen más complejas, fijate si te sirve lo que te puse yo, sino vemos de adaptar tus funciones
Saludos
  #8 (permalink)  
Antiguo 11/02/2005, 04:23
 
Fecha de Ingreso: diciembre-2004
Ubicación: Malaga
Mensajes: 115
Antigüedad: 19 años, 4 meses
Puntos: 0
Gracias.
El tema es que esas funciones son generadas por el Dreamweaver y las uso en muchos sitios por lo que seria interesante el ver si es posible modificarla para que funcione esa propiedad.
  #9 (permalink)  
Antiguo 11/02/2005, 04:51
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 21 años, 9 meses
Puntos: 0
Aclaro que sólo lo probé en IE 6 por ahora (pero estimo que debe funcionar como el ejemplo que puse antes yo, en los otros navegadores y falla en Netscape 6, todavía no encontré la forma de hacerlo funcionar en N6):

function MM_setTextOfLayer(objName,x,newText) { //v4.01
if ((obj=MM_findObj(objName))!=null) with (obj)
if (document.layers) {document.write(unescape(newText)); document.close();}
else
innerHTML = unescape(newText);
box = document.getElementById(objName);
box.scrollTop = 0;
}

Solamente deberías agregar esas 2 últimas líneas a esa función.
Lo que hago simplemente es con la primera línea, hacer una referencia a "Layer1" y en la segunda línea le aplico la propiedad.
Espero funcione, sino avisame
  #10 (permalink)  
Antiguo 11/02/2005, 13:02
 
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 320
Antigüedad: 20 años, 5 meses
Puntos: 0
DeLaVega, me has solucionado la vida.
  #11 (permalink)  
Antiguo 11/02/2005, 14:28
 
Fecha de Ingreso: diciembre-2004
Ubicación: Malaga
Mensajes: 115
Antigüedad: 19 años, 4 meses
Puntos: 0
Gracias de ante mano por tu esfuerzo y sobre todo por las explicaciones.
Debes estar muy cerca del metodo correcto pero añadiendo esas 2 lineas da un error.
__________________
Directorio de Fotografía
  #12 (permalink)  
Antiguo 11/02/2005, 14:53
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 21 años, 9 meses
Puntos: 0
Cita:
DeLaVega, me has solucionado la vida
Tanto? jaja


Cita:
Gracias de ante mano por tu esfuerzo y sobre todo por las explicaciones.
Debes estar muy cerca del metodo correcto pero añadiendo esas 2 lineas da un error.
Podrías poner el error que te tira?
  #13 (permalink)  
Antiguo 11/02/2005, 15:05
 
Fecha de Ingreso: diciembre-2004
Ubicación: Malaga
Mensajes: 115
Antigüedad: 19 años, 4 meses
Puntos: 0
Dice Sintaxis de error en la linea 49 que no se que quiere decir pero eso dice. Lo puedes ver en el ejemplo.
http://perso.wanadoo.es/alpar500/barra/
__________________
Directorio de Fotografía
  #14 (permalink)  
Antiguo 11/02/2005, 15:49
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 21 años, 9 meses
Puntos: 0
Hola, fijate que tenés una } de más...


function MM_setTextOfLayer(objName,x,newText) { //v4.01
if ((obj=MM_findObj(objName))!=null) with (obj)
if (document.layers) {document.write(unescape(newText));

document.close();}
else
innerHTML = unescape(newText);
box = document.getElementById(objName);
box.scrollTop = 0;
}
} <----- borra una de estas llaves

Creo que con eso ya estaría, saludos
  #15 (permalink)  
Antiguo 11/02/2005, 15:56
 
Fecha de Ingreso: diciembre-2004
Ubicación: Malaga
Mensajes: 115
Antigüedad: 19 años, 4 meses
Puntos: 0
Exacto, disculpa mi torpeza. Tu solucion es perfecta y funciona correctamente.
Muchas gracias por tu interes.
__________________
Directorio de Fotografía
  #16 (permalink)  
Antiguo 11/02/2005, 17:09
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 21 años, 9 meses
Puntos: 0
No hay por qué, me alegro que haya funcionado.
Saludos

Si alguien tiene idea de como podría solucionarse para que funcione en Netscape 6.2, se agradece, ya que no pude encontrar la propiedad similar a scrollTop para N6 y me quedé con curiosidad.

Última edición por DeLaVega; 11/02/2005 a las 17:14
  #17 (permalink)  
Antiguo 12/02/2005, 06:14
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Prueba con pageYOffset a ver si le gusta.

Vamos al foro de javascript

Movido desde (x)html
  #18 (permalink)  
Antiguo 12/02/2005, 12:55
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 21 años, 9 meses
Puntos: 0
Si, había probado con pageYOffset, pero no funcionó...
  #19 (permalink)  
Antiguo 12/02/2005, 13:18
 
Fecha de Ingreso: diciembre-2004
Ubicación: Malaga
Mensajes: 115
Antigüedad: 19 años, 4 meses
Puntos: 0
En un foro encontre esto que no se si valga.

function displayscrolltop() {
LastPos=document.body.scrollTop
if (LastPos==0) {
LastPos=document.documentElement.scrollTop
}
alert('LastPos = '+LastPos)
}
</script>
<body onunload="displayscrolltop()">
__________________
Directorio de Fotografía
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 (incluyéndote)




La zona horaria es GMT -6. Ahora son las 13:36.