Foros del Web » Programando para Internet » Javascript »

Ocultar texto, pulsar boton y mostrarlo

Estas en el tema de Ocultar texto, pulsar boton y mostrarlo en el foro de Javascript en Foros del Web. A ver si alguien me pude ayudar?? Se pude hacer que cuando se cargue una pagina web solo aparezca una parte de la mima y ...

  #1 (permalink)  
Antiguo 13/06/2003, 09:44
 
Fecha de Ingreso: mayo-2003
Mensajes: 40
Antigüedad: 21 años
Puntos: 1
Ocultar texto, pulsar boton y mostrarlo

A ver si alguien me pude ayudar??

Se pude hacer que cuando se cargue una pagina web solo aparezca una parte de la mima y que al pulsar un boton por debajo del mismo se cargue el texto que al principio estaba oculto.

Muchas gracias. Un saludo soys cojonudos!
  #2 (permalink)  
Antiguo 13/06/2003, 09:52
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 4 meses
Puntos: 17
<span id="oculto" style="width:500;"></span>
<a href="Javascript:document.getElementById('oculto') .innerText='Y la luz se hizo';">¡Hágase la luz!</a>
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 13/06/2003, 10:40
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, julimirin.

Otra opción:
Código PHP:
<body>
<
input type="button" value="Ver"
 
onClick="document.getElementById('oculto').style.visibility='visible'">
<
br>Este texto se ve siempre
<div id="oculto" style="visibility:hidden">
Este texto se verá cuando yo quiera
</div>
</
body
Saludos,
  #4 (permalink)  
Antiguo 13/06/2003, 14:51
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
y para que se vuelva a acultar???
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #5 (permalink)  
Antiguo 14/06/2003, 04:01
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, dobled.

document.getElementById('oculto').style.visibility ='hidden'

Saludos,
  #6 (permalink)  
Antiguo 15/06/2003, 09:50
 
Fecha de Ingreso: mayo-2003
Mensajes: 40
Antigüedad: 21 años
Puntos: 1
Muchas gracias

Funciona que te cagas, muchas gracias. Me viende de perlas pa mi pagina.

Up the Irons!

con esto me dais la vida ya.... y para que una vez se haya ocultado al pulsar el boton, se posicione en la parte superior de la pagina. He probado con un ancla(marcador) pero no me funciona.

Gracias

Última edición por julimirin; 15/06/2003 a las 09:50
  #7 (permalink)  
Antiguo 03/10/2005, 16:15
Avatar de alarga  
Fecha de Ingreso: junio-2003
Ubicación: Cádiz
Mensajes: 119
Antigüedad: 20 años, 11 meses
Puntos: 0
Pregunta Rizar el rizo

Hola, pues muchas gracias (aunque sea con 2 años de retraso ) porque eso era lo que iba a preguntar, aunque a mi me gustaría llegar un poco mas lejos.

Lo que me gustaría saber es como se puede hacer eso mismo pero pinchando siempre en un mismo enlace, sin utilizar dos botones. O sea, yo pincho sobre un enlace (texto o imagen) de forma que el texto de abajo ("Este texto se verá cuando yo quiera") va apareciendo y desapareciendo alternativamente.

Y el mas difícil todavia, ¿como se podría conseguir que el enlace en cuestión fuera un símbolo [-] o un símbolo [+] según estuviera el texto desplegado o no?. (espero haberme explicado)

Muchas gracias a tod@s l@s que intenten darme una respuesta.
  #8 (permalink)  
Antiguo 04/10/2005, 00:46
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola alarga

Rizando...
Código PHP:
<html>
<
head>
<
script>
function 
mostrar(enla) {
  
obj document.getElementById('oculto');
  
obj.style.visibility = (obj.style.visibility == 'hidden') ? 'visible' 'hidden';
  
enla.innerHTML = (enla.innerHTML == '-') ? '+' '-';
}
</script>
</head>
<body>
<a href="#" onclick="mostrar(this); return false" />+</a>
<div id="oculto" style="visibility:hidden">
Este texto se verá cuando yo quiera
</div>
</body> 
</html> 
Saludos,
  #9 (permalink)  
Antiguo 04/10/2005, 07:27
Avatar de alarga  
Fecha de Ingreso: junio-2003
Ubicación: Cádiz
Mensajes: 119
Antigüedad: 20 años, 11 meses
Puntos: 0
Rizando el rizo aún más

Pues si, eso es justo lo que quería

Incluso me he permitido modificar la función para que pueda ser aplicada sobre la capa cuyo ID le paso como argumento, de esta manera puedo poner varios enlaces que muestran/ocultan cada uno su capa y usan la misma función.
Código:
function mostrar(enla , etik) {
  obj = document.getElementById(etik);
  obj.style.visibility = (obj.style.visibility == 'hidden') ? 'visible' : 'hidden';
  enla.innerHTML = (enla.innerHTML == '[-]') ? '[+]' : '[-]';
}
El inconveniente es que si pongo varios enlaces consecutivos, entre uno y otro se mantiene la distancia que ocupa la capa invisible, y me pregunto si se podría conseguir que el texto, en vez de ser invisible, "desapareciera" al pinchar sobre el enlace [-], de tal forma que todo lo que hubiera en la parte inferior de la capa ocupara su lugar cuando esta "desaparece". (o sea, que pareciese que lo que hay debajo "sube" de repente)

Un saludo y muchas gracias
  #10 (permalink)  
Antiguo 04/10/2005, 09:59
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Esto no es un rizo, solo una ligera ondulación

Pon los div así:

<div id="oculto" style="display:none">

y cambia esta línea en la función:

obj.style.display = (obj.style.display == 'block') ? 'none' : 'block';

Saludos,
  #11 (permalink)  
Antiguo 05/10/2005, 06:08
Avatar de alarga  
Fecha de Ingreso: junio-2003
Ubicación: Cádiz
Mensajes: 119
Antigüedad: 20 años, 11 meses
Puntos: 0
Sonrisa ya está el rizo bien rizado

Bueno, bueno, bueno .... esto ha sido la repanocha, pensaba que lo último era mas complicado de conseguir que lo anterior, pero veo que no.

Muchisisimas gracias por tu ayuda

El motivo de todo esto es que me encontré este efecto en esta web y me gustó, pero al ver el código fuente de la página me eché a temblar así que decidí buscar en este foro por si alguien sabía hacer algo parecido de una forma más simple, y mira por donde lo encontré

Un saludo y muchas gracias.
  #12 (permalink)  
Antiguo 05/10/2005, 11:14
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
A veces las cosas complicadas resultan fáciles y viceversa. Me alegro de que te haya funcionado
  #13 (permalink)  
Antiguo 08/10/2005, 18:57
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años
Puntos: 2
va de lujo
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 08/10/2005 a las 19:29
  #14 (permalink)  
Antiguo 10/10/2005, 07:48
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 5 meses
Puntos: 144
Por rizar un poco más el rizo que ya fue rizado (esto parece un galimatías)... ¿Cómo se haría eso, sin dejar el hueco vacío que queda con la capa oculta?. Es decir, si debajo de la capa oculta, tengo un texto, me queda encima de ese texto, el hueco de la capa invisible/visible. ¿Se puede plegar ese hueco para que no aparezca?. ¿De qué forma?.

Gracias miles.
  #15 (permalink)  
Antiguo 11/10/2005, 05:43
 
Fecha de Ingreso: octubre-2005
Mensajes: 2
Antigüedad: 18 años, 7 meses
Puntos: 0
Hola.
Este post es muy interesante y útil. Pero todavía nos topamos con un problema: Microsoft y el Service Pack 2 para Windows XP.
Quien lo tenga instalado, y a la hora de cargar este código, el Internet Explorer lo bloqueará, impidiendo ver el texto oculto.
Dado que no todo el mundo sabe cambiar las opciones del navegador, y ni siquiera se les ocurre hacer clic en el mensajito que muestra ("Para ayudar a proteger su seguridad, Internet Explorer impidió que este archivo mostrara contenido activo que podría obtener acceso al equipo. Haga clic aquí para consultar más opciones...")....

¿Sabéis si existe alguna otra forma de conseguir este efecto sin que sea bloqueado? (aparte de utilizar algún otro navegador, claro) :)
  #16 (permalink)  
Antiguo 11/10/2005, 06:16
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola gendiskan Bienvenido al foro.

En otro mensaje se comentó que la barra de bloqueo solo sale si lo pruebas en tu ordenador, si lo subes a un servidor no debería darte problemas.

Saludos,
  #17 (permalink)  
Antiguo 11/10/2005, 07:40
Avatar de alarga  
Fecha de Ingreso: junio-2003
Ubicación: Cádiz
Mensajes: 119
Antigüedad: 20 años, 11 meses
Puntos: 0
Cita:
Iniciado por 3pies
Por rizar un poco más el rizo que ya fue rizado (esto parece un galimatías)... ¿Cómo se haría eso, sin dejar el hueco vacío que queda con la capa oculta?. Es decir, si debajo de la capa oculta, tengo un texto, me queda encima de ese texto, el hueco de la capa invisible/visible. ¿Se puede plegar ese hueco para que no aparezca?. ¿De qué forma?.

Gracias miles.
No puedo ayudarte porque tampoco tengo muchos conocimientos, pero si lo explicaras un pelín mejor quizás podría darte alguna idea.

  #18 (permalink)  
Antiguo 11/10/2005, 16:14
 
Fecha de Ingreso: octubre-2005
Mensajes: 2
Antigüedad: 18 años, 7 meses
Puntos: 0
Cita:
Iniciado por JavierB
Hola gendiskan Bienvenido al foro.

En otro mensaje se comentó que la barra de bloqueo solo sale si lo pruebas en tu ordenador, si lo subes a un servidor no debería darte problemas.

Saludos,
Gracias por la aclaración, lo he comprobado y tienes razón. Perdonad que no me haya dado cuenta de que ya había un mensaje aclarándolo.
  #19 (permalink)  
Antiguo 22/10/2005, 11:52
 
Fecha de Ingreso: enero-2002
Mensajes: 31
Antigüedad: 22 años, 4 meses
Puntos: 0
Fantastico, lo que buscaba para mi web, pero una duda, yo necesito varios links y no me funciona, me atasco aqui (mi conocimiento de javascript es nulo)

Cita:
Iniciado por alarga
Incluso me he permitido modificar la función para que pueda ser aplicada sobre la capa cuyo ID le paso como argumento, de esta manera puedo poner varios enlaces que muestran/ocultan cada uno su capa y usan la misma función.
Como le doy un ID distinto a cada link y div para que sepa que texto mostrar/ocultar? por que antes en la funcion si salia la palabra "oculto" pero ahora sale "etik" y ya me he perdido.

PD. Te agradeceria con un ejemplo tambien, no solo teoria.
  #20 (permalink)  
Antiguo 23/10/2005, 10:31
 
Fecha de Ingreso: enero-2002
Mensajes: 31
Antigüedad: 22 años, 4 meses
Puntos: 0
Lo unico que he conseguido es hacer esto

Código PHP:
<script>
function 
mostrar(enla) {
  
obj document.getElementById('oculto');
  
obj.style.visibility = (obj.style.visibility == 'hidden') ? 'visible' 'hidden';
}
function 
mostrar2(enla) {
  
obj document.getElementById('oculto2');
  
obj.style.visibility = (obj.style.visibility == 'hidden') ? 'visible' 'hidden';
}
</script>

</head>
<body>

<a href="#" onclick="mostrar(this); return false" />+</a>
<div id="oculto" style="visibility:hidden">
Este texto se verá cuando yo quiera
</div>

<a href="#" onclick="mostrar2(this); return false" />+</a>
<div id="oculto2" style="visibility:hidden">
Este texto se verá cuando yo quiera
</div>

</body> 
</html> 
pero claro, uso una cabecera con el <head> para todas las paginas (php), y alguna tendra 1 ID para desplegar y otras 15 posibles para desplegar, y lo que yo quisiera es si se puede tener una unica funcion independientemente de que necesites llamarla 1 o 20 veces condiferentes id y diferentes links. Si no me queda la posibilidad de poner 20 funciones como lo que he echo para tener reserva, pero es peso innecesario para la pagina.
  #21 (permalink)  
Antiguo 24/10/2005, 16:00
Avatar de alarga  
Fecha de Ingreso: junio-2003
Ubicación: Cádiz
Mensajes: 119
Antigüedad: 20 años, 11 meses
Puntos: 0
Hola Enric, te pongo un ejemplo práctico de como se puede compartir una misma función para varios enlaces.

Código PHP:
<html>
<
head>

<
script>
function 
mostrar(enla etik) {
  
obj document.getElementById(etik);
    
obj.style.display = (obj.style.display == 'block') ? 'none' 'block';
  
enla.innerHTML = (enla.innerHTML == '[-]') ? '[+]' '[-]';
}
</script>

</head>

<body>

<p><a href="#" onclick="mostrar(this,'oculto'); return false" />[+]</a></p>

<div id="oculto" style="display:none">
Este texto se verá cuando yo quiera
</div>

<div>esto es un texto intermedio, siempre esta visible</div>

<p><a href="#" onclick="mostrar(this,'oculto2'); return false" />[+]</a></p>

<div id="oculto2" style="display:none">
Este texto se verá cuando yo quiera
</div>

<div>esto es otro texto intermedio, siempre esta visible</div>

</body>
</html> 
Espero que ahora lo hayas pillado

Un saludo
  #22 (permalink)  
Antiguo 24/10/2005, 23:52
 
Fecha de Ingreso: enero-2002
Mensajes: 31
Antigüedad: 22 años, 4 meses
Puntos: 0
Muchisimas gracias, ya lo tengo implementado, y he aprendido algo.

Me volvi loco haciendo pruebas, pero nunca se me ocurrio " mostrar(this,'oculto2'); ", ya que como dije antes en javascript mi conocimiento es nulo, pero aprendere.
  #23 (permalink)  
Antiguo 25/10/2005, 08:03
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 7 meses
Puntos: 4
tambien puede ser así:
Cita:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
function mostrar(enla) {
obj = document.getElementById('oculto'+enla);
obj.style.visibility = (obj.style.visibility == 'hidden') ? 'visible' : 'hidden';
}
</script>

</head>
<body>

<a href="#" onclick="mostrar('1'); return false" />+</a>
<div id="oculto1" style="visibility:hidden">
Este texto se verá cuando yo quiera
</div>

<a href="#" onclick="mostrar('2'); return false" />+</a>
<div id="oculto2" style="visibility:hidden">
Este texto se verá cuando yo quiera
</div>

</body>
</html>
saludos
__________________
by Capitán Buscapina
.
  #24 (permalink)  
Antiguo 19/02/2006, 06:52
Avatar de alarga  
Fecha de Ingreso: junio-2003
Ubicación: Cádiz
Mensajes: 119
Antigüedad: 20 años, 11 meses
Puntos: 0
Pregunta nuevo rizamiento del rizo

Vuelvo a resucitar este post () porque me ha surgido una nueva duda.

Lo que me gustaría conseguir ahora es lo mismo que pregunté en mi primer mensaje del post, pero sin tener que pinchar en el enlace, simplemente pasando el ratón por encima de él. De tal forma que el texto o la capa oculta solo se haga visible durante el tiempo que el cursor del ratón esté encima del enlace.

He intentado cambiar la función js y la etiqueta del enlace (he probado con onmouseover, onmouseup, onmousemove, ...) pero sin resultados positivos.

¿Alguna ayudita?, gracias
  #25 (permalink)  
Antiguo 19/02/2006, 06:56
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola alarga

Tienes que cambiar un poco el enlace:

<a href="#" onmouseover="mostrar('1','visible')" onmouseout="mostrar('1','hidden')" />+</a>

y la función:
Código:
function mostrar(enla,vis) {
obj = document.getElementById('oculto'+enla);
obj.style.visibility = vis
}
Saludos,
  #26 (permalink)  
Antiguo 19/02/2006, 07:32
Avatar de alarga  
Fecha de Ingreso: junio-2003
Ubicación: Cádiz
Mensajes: 119
Antigüedad: 20 años, 11 meses
Puntos: 0
Pues hola de nuevo y muchas gracias, aunque no me ha funcionado, y lo peor es que tampoco he pillado la esencia del código que has puesto.

De todas formas pensaba responderme para decir que lo había conseguido resolver de esta manera:
Código HTML:
<script type="text/javascript">

function mostrar(enla,etik) {
  obj = document.getElementById(etik);
  obj.style.visibility = (obj.style.visibility == 'hidden') ? 'visible' : 'hidden';
}

</script>
..............................
<body>

<a href="#" onmouseover="mostrar(this,'capa'); return false" onmouseout="mostrar(this,'capa'); return false">enlace</a>

<div id="capa" style="visibility:hidden">
    Este texto se verá cuando ponga el cursor sobre el enlace
</div>

</body> 
Peeero hay un problema, resulta todo esto viene a cuento porque quiero hacer un menú vertical, donde al pasar el ratón por ciertas opciones aparezca otro submenú al lado del menú principal (pegado a esté, pero sin superponerse), y eso es lo que acabo de conseguir.

Lo malo es que cuando muevo horizontalmente el cursor del ratón desde el menú principal al submenú, éste último desaparece siéndome imposible moverme por sus opciones.

¿Hay alguna solución para esto?
  #27 (permalink)  
Antiguo 19/02/2006, 12:27
Avatar de alarga  
Fecha de Ingreso: junio-2003
Ubicación: Cádiz
Mensajes: 119
Antigüedad: 20 años, 11 meses
Puntos: 0
Cita:
Iniciado por alarga
¿Hay alguna solución para esto?
Pues si, y ya la he encontré

Me he puesto a cavilar y por fin he dado con la solución, ya tengo mi menú terminado. La solución consiste en crear dos funciones genéricas, una para mostrar capas y otras para ocultarlas, y en utilizar los eventos onMouseOver y onMouseOut.

Saludos.

PD: que de cosas se aprenden cuando se tiene que buscar uno mismo la vida
  #28 (permalink)  
Antiguo 23/05/2010, 17:48
 
Fecha de Ingreso: agosto-2009
Mensajes: 292
Antigüedad: 14 años, 8 meses
Puntos: 5
Respuesta: Ocultar texto, pulsar boton y mostrarlo

Cita:
Iniciado por JavierB Ver Mensaje
Hola alarga

Rizando...
Código PHP:
<html>
<
head>
<
script>
function 
mostrar(enla) {
  
obj document.getElementById('oculto');
  
obj.style.visibility = (obj.style.visibility == 'hidden') ? 'visible' 'hidden';
  
enla.innerHTML = (enla.innerHTML == '-') ? '+' '-';
}
</script>
</head>
<body>
<a href="#" onclick="mostrar(this); return false" />+</a>
<div id="oculto" style="visibility:hidden">
Este texto se verá cuando yo quiera
</div>
</body> 
</html> 
Saludos,
hola que tal JavierB, primero antes que nada pido disculpas por revivir este tema, mi pregunta es la siguente: como le tengo que hacer para que envez de + o - sean imagenes y que se compatible con IE y Opera.

Saludos y muchas gracias de antemano y nuevamente disculpen por revivir el tema
  #29 (permalink)  
Antiguo 24/05/2010, 07:25
Avatar de _cronos  
Fecha de Ingreso: abril-2010
Mensajes: 135
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Ocultar texto, pulsar boton y mostrarlo

Donde pone + y - tendrías que poner el código de la imagen: <img src='mostrar.gif' width='...' height='...'.../> y <img src='ocultar.gif' width='...' height='...' .../>

Saludos (:

PD: Para la próxima vez, es mejor que abras un nuevo tema y pongas un enlace a este en el mismo.
__________________
'Dadme un punto de apoyo y moveré el mundo' - Arquímedes
Alianza DIOSES [-GOD-] Ikariam - Mundo Ny (s13)
  #30 (permalink)  
Antiguo 24/05/2010, 13:06
 
Fecha de Ingreso: agosto-2009
Mensajes: 292
Antigüedad: 14 años, 8 meses
Puntos: 5
Respuesta: Ocultar texto, pulsar boton y mostrarlo

Hola que tal; mira este el el codigo como le he montado

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3.  
  4. <style>
  5. #hide {
  6.     background:url(images/hide.png);
  7.     height:19px;
  8.     text-decoration:none;
  9.     width:19px;
  10. }
  11.  
  12. #show {
  13.     background:url(images/show.png);
  14.     height:19px;
  15.     text-decoration:none;
  16.     width:19px;
  17. }
  18. </style>
  19.  
  20. <script>
  21. function mostrar(enla) {
  22.   obj = document.getElementById('oculto');
  23.   obj.style.display = (obj.style.display == 'block') ? 'none' : 'block';
  24.   enla.innerHTML = (enla.innerHTML == '<div id="hide"></div>') ? '<div id="show"></div>' : '<div id="hide"></div>';
  25. }
  26. </script>
  27. </head>
  28.  
  29. <body>
  30.  
  31. <a href="#" onClick="mostrar(this); return false" /><div id="show"></div></a>
  32. <div id="oculto" style="display:none">Texto oculto</div>
  33.  
  34. </body>
  35. </html>

Y aqui la pagina del ejemplo http://psy-tribe.co.cc/demo.php, el script funciona bien en Firefox y Chrome, pero el problema esta en IE y opera, cuando abro la pagina y le doy click a la imagen se cambia bien el boton pero descuel de que lo quiero ocultar el texto le doy al boton pero no se cambia el boton pero si se oculta el texto

Esto como lo puedo solucionar???

Saludos y gracias de antemano
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 5 personas




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