Foros del Web » Programando para Internet » Javascript »

Movimientos agradables

Estas en el tema de Movimientos agradables en el foro de Javascript en Foros del Web. Hola, foreros! Tengo un script que aumenta la altura de un div en mi web. El problema es que lo hace de una forma brusca, ...
  #1 (permalink)  
Antiguo 25/09/2008, 14:25
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Movimientos agradables

Hola, foreros!

Tengo un script que aumenta la altura de un div en mi web. El problema es que lo hace de una forma brusca, es decir, comienza y termina a la misma velocidad.

¿Como puedo hacer que cuanto menos quede mas lento aumente su velocidad?

Código PHP:
    var altura 1;
    var 
velocidad 10;

function 
extender() {
        var 
objeto document.getElementById('texto');
        
objeto.style.visibility 'visible';
        
altura += velocidad;
        if (!(
altura>=150)) {
            
objeto.style.height altura  'px';
            
window.setTimeout ("extender();"20);
        }
        
    } 
  #2 (permalink)  
Antiguo 25/09/2008, 14:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
De acuerdo Respuesta: Movimientos agradables

Aumenta el intervalo del setTimeout() ya que solo le estás poniendo 20 milisegundos entre cada acción.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 03/10/2008, 20:42
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Movimientos agradables

Hola de nuevo...

No, jeje... no busco hacer mas rapido el movimiento, lo que quiero es que acelere o decelere, es decir, al principio del movimiento valla a 100 milisigundos y al final a 50, pero de un modo continuo.

¿Como se hace?
  #4 (permalink)  
Antiguo 04/10/2008, 09:45
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Movimientos agradables

Fijate si te sirve algo así:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Ejemplo</title>
<
script>
function 
css(propiedadvalor){
    if(!
valor)
        return 
this.style[propiedad];
    
this.style[propiedad]=valor;
}
function 
easing(inicio,fin,coef,propiedad,medida,pausa){
        var 
tmp=[];
        if(!
medida)medida='';
        
css.call(this,propiedad,inicio+medida);
        var 
_this=this;
        
this.pausa=pausa;
        var 
test=0;
        var 
intervalo=setInterval(
            function(){
                
tmp[test]=_this.val;
                if(
test>&& tmp[tmp.length-2]==tmp[tmp.length-1]){
                    
_this.val=fin;
                     
css.call(_this,propiedad,_this.val+medida);
                     
clearInterval(intervalo);
                     return;
                }
                
test++;
                
document.getElementById('log').innerHTML=test;
                
_this.val=parseFloat(css.call(_this,propiedad))+(fin-parseFloat(css.call(_this,propiedad)))*coef;
                
css.call(_this,propiedad,_this.val+medida);
            },
this.pausa);
}
function $(
id){return document.getElementById(id);}
onload=function(){
    
easing.call($('pp'),10,400,.09,'width','px',10);
    
easing.call($('pp'),10,400,.09,'height','px',10);
}
</script>
</head>
<body>
<div id="pp" style=" background-color:orange; color:#FFF; display:block; ">fffffff</div>
<div id="log"></div>
</body>
</html> 

Última edición por Panino5001; 05/10/2008 a las 14:39
  #5 (permalink)  
Antiguo 05/10/2008, 17:08
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Movimientos agradables

Hola, Panino5001...

Muchas gracias!... es exactamente lo que buscaba...

Perfecto!.
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 21:16.