Comunidad de diseño web y desarrollo en internet online

setInterval, comenzar y detenar

Citar            
MensajeEscrito el 17 Ago 2011 01:51 pm
quiero saber algo, hay alguna forma de detenerlo, y luego que continue???

Código Javascript :

$(document).ready(function (){     
   setInterval(function(){ 
      $("#asd").stop().animate({color:'#000'},1200);  
      $("#asd").animate({color:'#00F'},1200);  
   },2400) 
});


por ejemplo al hacer click en #para que se detenga y en #continuar que siga la animación :P
gracias y saludos :D

Por alexx855

34 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Ago 2011 03:58 pm
Pues primero tienes que reformar el código que dispara el temporizador:

Código Javascript :

var trm;
$(document).ready(function (){      
   trm = setInterval(function(){  
      $("#asd").stop().animate({color:'#000'},1200);   
      $("#asd").animate({color:'#00F'},1200);   
   },2400)  
});


Luego, para parar el temporizador, ejecutas:

Código Javascript :

clearInterval(trm);

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 19 Ago 2011 04:23 pm
Sólo algunos cambios que considero pertinentes:

Código Javascript :

var element = $("#asd");
var fn = function(){   
     element .stop().animate({color:'#000'},1200);    
     element.animate({color:'#00F'},1200);    
};


Almacenamos las referencias al elemento, para que así no tengamos que buscarlo en el DOM cada que se ejecute el interval, y a la función así no se carga cada vez en memoria que es lo que sucede cuando pasas una función directamente como parámetro.

Código Javascript :

function initTrm( fn, time ){
     return setInterval(fn, time);
}


El juguete para iniciar el intervarl. Devolvemos la referencia del interval para posteriormente utilizarla y detenerlo.

Código Javascript :

//para iniciarlo
var trm = initTrm(fn, 2400);

//para detenerlo
clearInterval(trm);


Saludos.

Por jseros

Claber

116 de clabLevel

1 tutorial

Genero:Masculino  

Bogotá, Colombia

chrome
Citar            
MensajeEscrito el 26 Ago 2011 01:16 am
Muchas gracias!! me faltaría solo una cosa mas, hay alguna forma de que inicie ni bien carga el script?? es decir que no tenga que esperar esos 2400 para arrancar
saludos

Por alexx855

34 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ago 2011 02:34 am
En ese caso:

Código Javascript :

//Así swe ejecuta de una vez
fn();

//y luego para iniciar el timer
var trm = initTrm(fn, 2400);

Por jseros

Claber

116 de clabLevel

1 tutorial

Genero:Masculino  

Bogotá, Colombia

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.