Foros del Web » Programando para Internet » Javascript »

Mostrar y ocultar div

Estas en el tema de Mostrar y ocultar div en el foro de Javascript en Foros del Web. Hola! Estoy empezando con javascript esto es un ejemplo que conseguí buscando por Google y lo he adaptado un poco a lo que quiero... con ...
  #1 (permalink)  
Antiguo 08/11/2015, 09:55
 
Fecha de Ingreso: diciembre-2006
Mensajes: 35
Antigüedad: 17 años, 4 meses
Puntos: 0
Mostrar y ocultar div

Hola! Estoy empezando con javascript esto es un ejemplo que conseguí buscando por Google y lo he adaptado un poco a lo que quiero... con esto consigo mostrar o ocultar un div.. uno de ellos muestra productos y el otro comentarios

Lo que quiero conseguir es que si al mostrar el div comentarios el div productos no esta oculto, este se oculte, o viceversa... tal como tengo no lo consigo... al mostrar el div comentarios el div productos no se oculta...

Código HTML:
<script language="JavaScript">
function muestra_oculta(id,idComentario) {
	if (document.getElementById) {
		var producto = document.getElementById(id);
		producto.style.display = (producto.style.display == 'none') ? 'block' : 'none';
		var comentario = document.getElementById(idComentario);
		comentario.style.display = (comentario.style.display == 'none') ? 'block' : 'none';
	}
}
</script> 
Código HTML:
<div class="content-resultados" onclick="muestra_oculta('id<? echo $cont; ?>')">
Productos
</div>
<div class="content-opiniones" onclick="muestra_oculta('idComentarios<? echo $cont; ?>')">
Comentarios
</div>
 
<div id="id<? echo "$cont"; ?>" style="display:none;">
Contenido productos...
</div>
<div id="idComentarios<? echo "$cont"; ?>" style="display:none;">
Contenido Comentarios...
</div> 
  #2 (permalink)  
Antiguo 08/11/2015, 11:57
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Mostrar y ocultar div

Puedes utilizar una clase para ocultar a cualquiera de los dos elementos. En la función, bastaría con tomes al elemento que posea la clase que lo oculta y se la quitas, mientras que para tomar al otro elemento, puedes utilizar la pseudo-clase CSS de negación :not para indicar que deseas tomar al elemento que no posea dicha clase.

Código HTML:
Ver original
  1. <section id = "elementos">
  2.     <div>Primer elemento</div>
  3.     <div class = "oculto">Segundo elemento</div>
  4. <span id = "cambio">Cambiar</span>

Código CSS:
Ver original
  1. .oculto{
  2.     display: "none";
  3. }

Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.     document.querySelector("#cambio").addEventListener("click", function(){
  3.         document.querySelector(".oculto").className = "";
  4.         document.querySelector("#elementos div:not(.oculto)").className = "oculto";
  5.     }, false);
  6. }, false);

Adáptalo a lo que intentas hacer.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 15/11/2015, 08:48
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: Mostrar y ocultar div

Hola! Yo también quiero hacer lo mismo pero tu codigo solo vale para dos div. Necesito que todos los divs (5 en este caso) esten ocultos de inicio y que solo se pueda mostrar uno a la vez. Al mismo tiempo que todos puedan estar ocultos

Gracias
  #4 (permalink)  
Antiguo 15/11/2015, 13:49
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Mostrar y ocultar div

@Alexis88
Cita:
display: "none";
prueba con este otro
Cita:
function evento() {

var inst = new variables();

Array.prototype.forEach.call(arguments, function (v, i, arr) {

document.querySelector(arr[i][0]).addEventListener('click', function() {

inst.muestra_oculta(arr[i][1]);

}, false)
})

}


function variables() {

this.cont = 0;
this.sel = null;
}


variables.prototype.muestra_oculta = function(id) {

if (this.sel === id || this.sel == null) {
document.querySelector(id).style.display = (this.cont++ % 2 == 0) ? 'block' : 'none';

} else if (this.sel !== id) {

document.querySelector(id).style.display = 'block';
document.querySelector(this.sel).style.display = 'none';
this.cont = 1;
}

this.sel = id;
}




document.addEventListener('DOMContentLoaded', function() {

evento.apply(null, [['.content-resultados', '#id1'], ['.content-opiniones', '#id2']]);

}, false);



<div class="content-resultados">
Productos
</div>
<div class="content-opiniones">
Comentarios
</div>

<div id="id1" style="display:none;">
Contenido productos...
</div>
<div id="id2" style="display:none;">
Contenido Comentarios...
</div>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: Ninguno
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 15:01.