Foros del Web » Programando para Internet » Javascript »

Efecto para un frame al cerrarse

Estas en el tema de Efecto para un frame al cerrarse en el foro de Javascript en Foros del Web. Me gustaria si saben ustedes algun efecto que le pudiese dar para cerrar un frame (marco) superior. Me explico: Quiero ponerle a una web un ...
  #1 (permalink)  
Antiguo 15/06/2007, 21:57
eMx
 
Fecha de Ingreso: julio-2004
Mensajes: 54
Antigüedad: 20 años, 8 meses
Puntos: 1
Efecto para un frame al cerrarse

Me gustaria si saben ustedes algun efecto que le pudiese dar para cerrar un frame (marco) superior. Me explico:

Quiero ponerle a una web un frame superior donde habría un reproductor. Pues querria poner (como en el visor de resultados de busqueda de imagenes de Google) Cerrar frame pero que, al clicar, no hiciera efecto de hipervinculo mandando a un site (en este caso a la direccion del marco inferior), sino que me gustaria que hiciera algun efecto deslizante y, a ser posible, que quedara en una pequeña barrita, donde pusiere Abrir reproductor. Y al clicar volviese a abrirse (como ocurre con la publicidad de tripod.lycos.es pero en vez de que a X segundos se convierta en una pequeña barra, que cuando diesen en Cerrar frame hiciera esto con un efecto deslizante).

Si saben de la existencia de algun código como el que quiero o similar, les estaría muy agradecidos en que me lo pasasen.

Salu2.
  #2 (permalink)  
Antiguo 16/06/2007, 03:22
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 23 años, 1 mes
Puntos: 772
Re: Efecto para un frame al cerrarse

Hola eMx

Que yo sepa, con Css no se puede. Muevo el mensaje al foro de JavaScript.

Saludos,
  #3 (permalink)  
Antiguo 16/06/2007, 13:46
eMx
 
Fecha de Ingreso: julio-2004
Mensajes: 54
Antigüedad: 20 años, 8 meses
Puntos: 1
Re: Efecto para un frame al cerrarse

Muchas gracias entonces por moverlo.

Yo creo que para conseguirlo hay que mezclar los dos lenguajes. Pero vamos es una intuición mía, yo no consigo la forma...

Esperemos que haya suerte :)

Salu2.
  #4 (permalink)  
Antiguo 17/06/2007, 12:10
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 4 meses
Puntos: 45
Re: Efecto para un frame al cerrarse

No, esta vez no hemos tenido que meter mano al CSS, lo podemos hacer con los atributos de document.body.

Tenemos 3 archivos, el que define la estructura de los frames (1), el frame superior(2) y el frame inferior(3).

frame-deslizante1.html:
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html>
    <
head>
        <
title></title>
        <
meta name="Author" content="derkeNuke">
        <
FRAMESET ROWS="150,*">
            <
FRAME SRC="frame-deslizante2.html" name="frame1" >
            <
FRAME SRC="frame-deslizante3.html" name="frame2" >
        </
FRAMESET>
    </
head>
    <
NOFRAMES>
        <
body>
            
Sin frames no lo ves
        
</body>
    </
NOFRAMES>
</
html
frame-deslizante2.html:
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html>
<
head>
<
title></title>
<
meta name="Author" content="derkeNuke">

<
script type="text/javascript">

function 
mueveFrameSup(h) {
    
parent.document.body.rows=h+"px,*";
}

var 
hExpandidohContraido=50primera=true;
function 
getH() { return parseIntparent.document.body.rows.toString().split(",")[0] ); }
hExpandido getH();
function 
contraer() {
    var 
hActual=contraer.arguments[0];
    if(
hActual==undefinedhActual=getH();
    if(
hActual>hContraido) {
        
mueveFrameSup(hActual-3);
        
setTimeout("contraer("+(hActual-3)+")"10);
    }
}
function 
expandir() {
    var 
hActual=expandir.arguments[0];
    if(
hActual==undefinedhActual=getH();
    if(
hActual<hExpandido) {
        
mueveFrameSup(hActual+3);
        
setTimeout("expandir("+(hActual+3)+")"10);
    }
}

</script>

</head>

<body>

MINI FRAME ARRIBA

<button onclick="contraer()">contraer()</button>
<button onclick="expandir()">expandir()</button>


</body>
</html> 
Y por último frame-deslizante3.html:
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html>
<
head>
<
title></title>
<
meta name="Author" content="derkeNuke">
</
head>

<
body>

FRAME PRINCIPAL

</body>
</
html

Ya ves que no tiene mucho misterio, la propiedad rows de document.body contiene las proporciones de los marcos... ahora sólo extraemos valores de ahí, y los asignamos como nos conviene.



Espero que sea eso lo que buscas, un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 18/06/2007, 15:50
eMx
 
Fecha de Ingreso: julio-2004
Mensajes: 54
Antigüedad: 20 años, 8 meses
Puntos: 1
Re: Efecto para un frame al cerrarse

¡¡ES JUSTO LO QUE NECESITABA!! MIL GRACIAS.

Solo tengo una duda mas: Querría ponerlo para que apareciera contraido (es decir en barrita) en vez de expandido... ¿Cómo sería?

He probado poner en frame-deslizante1:

Código HTML:
 <FRAMESET [B]ROWS="23,*" [/B]framespacing="0" border="0" frameborder="0">
            <FRAME SRC="frame-deslizante2.htm" name="frame1" scrolling="no" target="_self" >
            <FRAME SRC="frame-deslizante3.htm" name="frame2" >
        </FRAMESET> 
Y en frame-deslizante2:

Código HTML:
var [B]hExpandido=150[/B], hContraido=23, primera=true;
function getH() { return parseInt( parent.document.body.rows.toString().split(",")[0] ); }
hExpandido = getH();
function contraer() {
    var hActual=contraer.arguments[0];
    if(hActual==undefined) hActual=getH();
    if(hActual>hContraido) {
        mueveFrameSup(hActual-3);
        setTimeout("contraer("+(hActual-3)+")", 10);
    }
Pero al ponerlo así, al darle al botón expandir no funciona :S

Espero tu respuesta y, mil ¡¡GRACIAS!! ¡¡GRACIAS!! ¡¡GRACIAS!! :P
  #6 (permalink)  
Antiguo 19/06/2007, 14:28
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 4 meses
Puntos: 45
Re: Efecto para un frame al cerrarse

Mmm.. ¿cómo? Si no tienes en el documento la función de expandir(), el botón no encontrará esa función que le dice que llame.

Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 23:05.