Foros del Web » Programando para Internet » Javascript »

Propiedad visibility & height

Estas en el tema de Propiedad visibility & height en el foro de Javascript en Foros del Web. Por fin he conseguido lo que buscaba, hacer unas tarjetas de noticias que al darle a un link y mediante una funcion mostrase contenido oculto, ...
  #1 (permalink)  
Antiguo 16/04/2010, 02:27
 
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Propiedad visibility & height

Por fin he conseguido lo que buscaba, hacer unas tarjetas de noticias que al darle a un link y mediante una funcion mostrase contenido oculto, lo podria dejar tal y como esta pero eso de tener que recurrir a IDs me parece poco profesional sobre todo cuando se va a tener gran cantidad de informacion, puede resultar muy lioso, ahora bien os dejo el codigo para que lo checkeis, existe alguna manera de formalizar todo esto? ahorrar lineas de codigo o simplificarlo, busco vuestra opinion y consejo.Gracias

Por cierto existe un getElementById pero no hay nada para las clases sin tener que recurrir a una funcion la tira de larga? Aun no se ha implantado el getElementByClass? porque la verdad eso seria lo que optimizaria mi script(creo yo)

Código HTML:
<script type="text/javascript">
	
	function mostrar_noticia(id){
		document.getElementById(id).style.visibility="visible";
	}
	function ampliar(id){
		document.getElementById(id).style.height="auto";
	}
	function ocultar_noticia(id){
		document.getElementById(id).style.visibility="hidden";
	}
	function cerrar(id){
		document.getElementById(id).style.height="170px";
	}
</script>
</head>

<body>
<!--Plantilla de tarjeta de notcias-->
<div class="contenedor_principal" id="contenedor_principal">
	<div name="contenedor_fecha/titular">
    	<!--Principio del subcontenedor de la fecha-->
        <div class="contenedor_fecha">
        	<div class="dia">dd</div>
            <div class="mes">mm</div>
            <div class="año">aaaa</div>
        </div>
        <!--Fin del subcontenedor de fecha-->
        <!--Principio del subcontenedor de titulares-->
        <div class="contenedor_titular">
        	<div class="titular">titular</div>
            <div class="subtitular">subtitular</div>
        </div><!--Fin subcontenedor del titular-->
    </div>
    <!--Final contenedor fecha/titular-->
    <!--Principio contenedor de noticia-->
    <div class="contenedor_noticia">
    El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - <a href="javascript:mostrar_noticia('not_oculta'); ampliar('contenedor_principal')" class="link_leermas">leer mas</a></div>
<!--Resto de la noticia oculta-->
    <div id ="not_oculta" class="noticia_oculta" style="visibility:hidden">
    El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - <a href="javascript:ocultar_noticia('not_oculta'); cerrar('contenedor_principal')" class="link_leermenos">cerrar</a>
    </div><!--Final de la noticia oculta-->
    <!--Final del contenedor de la noticia principal-->
</div>
<!--Fin de plantilla-->
&nbsp;
<!--Plantilla de tarjeta de notcias-->
<div id="contenedor_principal2" class="contenedor_principal">
	<div name="contenedor_fecha/titular">
    	<!--Principio del subcontenedor de la fecha-->
        <div class="contenedor_fecha">
        	<div class="dia">dd</div>
            <div class="mes">mm</div>
            <div class="año">aaaa</div>
        </div>
        <!--Fin del subcontenedor de fecha-->
        <!--Principio del subcontenedor de titulares-->
        <div class="contenedor_titular">
        	<div class="titular">titular</div>
            <div class="subtitular">subtitular</div>
        </div><!--Fin subcontenedor del titular-->
    </div>
    <!--Final contenedor fecha/titular-->
    <!--Principio contenedor de noticia-->
    <div class="contenedor_noticia">
    El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - <a href="javascript:mostrar_noticia('not_oculta2'); ampliar('contenedor_principal2')" class="link_leermas">leer mas</a> </div>
    <!--Resto de la noticia oculta-->
  <div id ="not_oculta2" class="noticia_oculta" style="visibility:hidden">
    El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - El texto de la noticia aqui - <a href="javascript:ocultar_noticia('not_oculta2'); cerrar('contenedor_principal2')" class="link_leermenos">cerrar</a>
  </div><!--Final de la noticia oculta-->
    <!--Final del contenedor de la noticia principal-->
</div>
</body> 
  #2 (permalink)  
Antiguo 16/04/2010, 04:02
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 14 años
Puntos: 0
Respuesta: Propiedad visibility & height

Tal vez no es lo que buscas pero te puedes ahorrar el "document.getElementById(id)" con la siguiente funcion.

function $(id){
return document.getElementById(id)
}

de esta forma solo tienes que poner :
  #3 (permalink)  
Antiguo 16/04/2010, 04:08
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 14 años
Puntos: 0
Respuesta: Propiedad visibility & height

Upsssss

te decia que de esta forma solo tienes que poner


$(id).style.visibility="visible";

Quedaria algo asi ..


function mostrar_noticia(id){
$(id).style.visibility="visible";
}
function ampliar(id){
$(id).style.height="auto";
}
function ocultar_noticia(id){
$(id).style.visibility="hidden";
}
function cerrar(id){
$(id).style.height="170px";
}


En fin, que no se si esto te ayuda mucho pero ahi te lo dejo. De todas formas, puedes usar este sistema en todos tus codigos y te ahorraras el tedioso tecleo de "document.getElementById".

Un saludo
  #4 (permalink)  
Antiguo 16/04/2010, 13:21
 
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Propiedad visibility & height

Muchas gracias, la cosa seria poner una funcion mas no? como si fuera una funcion-variable es correcto? Por lo cual todo eso quedaria asi puede ser?

function $(id){
return document.getElementById(id)
}
function mostrar_noticia(id){
$(id).style.visibility="visible";
}
function ampliar(id){
$(id).style.height="auto";
}
function ocultar_noticia(id){
$(id).style.visibility="hidden";
}
function cerrar(id){
$(id).style.height="170px";
}
  #5 (permalink)  
Antiguo 16/04/2010, 15:58
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 14 años
Puntos: 0
Respuesta: Propiedad visibility & height

CORRECTO!!!

Como ves te ahorras el "document.getElementById".

Un saludo

Etiquetas: height, propiedad, visibility
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 13:00.