Foros del Web » Programando para Internet » Javascript »

Animar capas

Estas en el tema de Animar capas en el foro de Javascript en Foros del Web. He estado buscando en el foro y google y no he encontrado como hacer lo que quiero, o por lo menos que me ayuden. el ...
  #1 (permalink)  
Antiguo 04/07/2006, 17:59
Avatar de deprabado  
Fecha de Ingreso: febrero-2002
Mensajes: 649
Antigüedad: 22 años, 2 meses
Puntos: 0
Animar capas

He estado buscando en el foro y google y no he encontrado como hacer lo que quiero, o por lo menos que me ayuden.

el caso es que tengo 2 capas ocultas, mediante css y javascript las muestro dependiendo de lo que quiera visualizar.

este es el codigo:

function mostrar(capa) {
if (document.getElementById(capa).style.display == "block"){
document.getElementById(capa).style.display = "none";
}
else{
document.getElementById('artrelacionados').style.d isplay = "none";
document.getElementById('comentarios').style.displ ay = "none";
document.getElementById(capa).style.display = "block";
}

Ahora si bien el codigo me permite mostrar y/o ocultar las capas segun quiera ahora quiero que la capa se muestre con una pequeña animacion, algo asi como si creciera, parecido al efecto del boton buscar de este foro.

no he podido hacerlo, alguien me podria ayudar????
  #2 (permalink)  
Antiguo 05/07/2006, 05:19
Avatar de pinchoso  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona
Mensajes: 177
Antigüedad: 18 años, 6 meses
Puntos: 0
Hola deprabado,

te dejo un ejemplo a ver que te parece.
Creo que el código original apareció en el foro hace un tiempo, aunque no recuerdo quien es el autor, lo he modificado para que haga algo similar a lo que tu pides, aunque deberás adaptarlo a tus necesidades:

Código:
 
<html>
<head>
<script>
function mostrar(capa) {
document.getElementById('capa').style.display = "block";
} 
function tamanno(){
 obj=document.getElementById('capa');
 obj.style.width=parseInt(obj.style.width)+5+'px';
 obj.style.height=parseInt(obj.style.height)+5+'px';
  if(parseInt(obj.style.width)>=200){
   obj.style.width='200px';
   obj.style.height='200px';
   clearInterval(t);
   //alert("pausa");
  }
}
</script>
</head>
<body>
<table style="width:0;height:0;border:1px solid #0000FF;display:none" cellpadding="0" cellspacing="0" id="capa" >
  <tr>
    <td width="0"></td>
  </tr>
</table>  
<input type="submit" name="Submit" value="Ver" onclick="mostrar('capa');t=setInterval('tamanno()',10)" />
</body>
</html>
Saludos!
__________________

  #3 (permalink)  
Antiguo 05/07/2006, 05:35
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
tengo que hacer la gracia.. no lo puedo evitar ..... :

Cita:
Animar capas
PONLES MUSICA


dicha la tonteria... yo tengo este codigo que mueve capas verticalmente entre dos posiciones que tu le das:

Código HTML:
var nc = (document.layers) ? true:false
var ie = (document.all) ? true:false
var n6 = (document.getElementById) ? true:false
var posicion;
var nueva_posicion;
var aux=10;
var tam;
var absol;
function posactual() {return aux;} 	
function muevelo(ini,pos)
{ 
posicion=ini;     
	  tam=10;  
	 if ((ini>pos) && ((ini-pos)<10)) tam=ini-pos;
	 if ((ini>pos) && ((ini-pos)>10)) tam=10;
	 if ((ini<pos) && ((pos-ini)<10)) tam=ini-pos;
	 if ((ini<pos) && ((pos-ini)<10)) tam=10;	  
	  if (ini<pos)  nueva_posicion=posicion+tam					
 	  else if (ini>pos) nueva_posicion=posicion-tam						
	  else nueva_posicion=pos;	  
	  aux=pos;	  
	  if(nueva_posicion!=pos)
      {
        if(ie) document.all['base'].style.top=nueva_posicion;
        else if(nc) document.layers['base'].top=nueva_posicion;
        else if(n6) document.getElementById('base').style.top=nueva_posicion;          
        posicion=nueva_posicion;
        setTimeout("muevelo(posicion,aux)",0);
      }
    }
llamada, desde un link por ejemplo:

onclick:'muevelo(posiciondesalida,posicionfinal);'
__________________
ALOZORRO v5.0 (ahora en .es)
  #4 (permalink)  
Antiguo 05/07/2006, 07:05
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 19 años, 10 meses
Puntos: 4
el no quiere mover la capa.. quiere darle efecto como los menues del vbulletin, tenes que usar overflow:hidden e ir agrandando el ancho y alto de la capa.
__________________
Internet Explorer SuckS
Download FireFox
  #5 (permalink)  
Antiguo 05/07/2006, 07:41
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
hombre.. animar una capa puede ser moverla no?
__________________
ALOZORRO v5.0 (ahora en .es)
  #6 (permalink)  
Antiguo 05/07/2006, 15:07
Avatar de deprabado  
Fecha de Ingreso: febrero-2002
Mensajes: 649
Antigüedad: 22 años, 2 meses
Puntos: 0
Es lo que estaba buscando pero ahora tengo un problemita....

si defino los atributos de la capa en mi hoja de estilos sencillamente no funciona...

otra cosa, en explorer no funciona cuando la capa tiene contenido en realidad se comporta muy extraño...

Última edición por deprabado; 06/07/2006 a las 23:33
  #7 (permalink)  
Antiguo 06/07/2006, 00:55
Avatar de pinchoso  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona
Mensajes: 177
Antigüedad: 18 años, 6 meses
Puntos: 0
Buenos dias,

a mi en explorer me funciona bien, el unico problema es que 200px de altura no son suficientes para ver todo el contenido de tu capa, pero a parte de eso a mi me funciona correctamente.

Lo de los estilos no acabo de entender porque no te funciona si los defines en la hoja de estilos, si lo haces en el propio documento si?
__________________

  #8 (permalink)  
Antiguo 06/07/2006, 23:34
Avatar de deprabado  
Fecha de Ingreso: febrero-2002
Mensajes: 649
Antigüedad: 22 años, 2 meses
Puntos: 0
El tamaño era solo prueba... pero si ese es el error, si defino el tamaño inicial en la hoja de estilos no funciona, si por el contrario lo hago en la capa si lo hace... muy extraño, voy a revisar si tengo los estilos duplicados o algo asi a ver
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 22:18.