Como um fazer loop infinito com jquery?

2,261 views
Skip to first unread message

weslei

unread,
Mar 25, 2010, 8:05:21 AM3/25/10
to jQuery (Brasil)
To tentando fazer uma animacao simples com jquery,mas quando coloco
pra rodar ele da erro o script e manda parar, quando eu paro o script
ele comeca a funcionar da forma como eu quero. Qual o problema com
esse codigo a abaixo??

<head>
<script src="jquery.js"></script>
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function() {
while(true){
$("#principal").animate({"font-size": "50px"},
"slow");
$("#principal").animate({"font-size": "80px"},
"slow");

}
});
</script>
</head>
<body>
<div id="principal" >
<p>teste</p>
</div>

</body>

Ruan Carlos

unread,
Mar 25, 2010, 8:14:45 AM3/25/10
to jque...@googlegroups.com
Simples

while(true){


imagine vc correr e não ter como parar. É assim que o browser se sente.


DA PRÓXIMA VEZ COLOQUE O CÓDIGO NO JSBIN.COM


--
Você está recebendo esta mensagem porque se inscreveu no grupo "jQuery (Brasil)" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para jque...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para jquery-br+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/jquery-br?hl=pt-BR.




--
-----------------------------------------------------------------
Ruan Carlos
@ruanltbg
www.ruancarlos.com.br
Desenvolvedor web

weslei

unread,
Mar 25, 2010, 8:22:58 AM3/25/10
to jQuery (Brasil)
foi mal...sou novo aqui...na proxima coloco no jsbin,mas entao como
fazer pra esse trecho :

$("#principal").animate({"font-size": "50px"},"slow");
$("#principal").animate({"font-size": "80px"},"slow");

ficar sempre se repetindo??obrigado.

On Mar 25, 9:14 am, Ruan Carlos <ruanl...@gmail.com> wrote:
> Simples
>
> while(true){
>
> imagine vc correr e não ter como parar. É assim que o browser se sente.
>
> DA PRÓXIMA VEZ COLOQUE O CÓDIGO NO JSBIN.COM
>

> > jquery-br+...@googlegroups.com<jquery-br%2Bunsu...@googlegroups.com>

Ruan Carlos

unread,
Mar 25, 2010, 8:26:26 AM3/25/10
to jque...@googlegroups.com
Use o callback das funções, uma chama a outra.

http://api.jquery.com/animate/



Para cancelar a inscrição nesse grupo, envie um e-mail para jquery-br+...@googlegroups.com.

Para obter mais opções, visite esse grupo em http://groups.google.com/group/jquery-br?hl=pt-BR.

Leo Balter

unread,
Mar 25, 2010, 4:19:54 PM3/25/10
to jque...@googlegroups.com
.delay() pelo amor de santo deus.

Callback imediato nesse caso é algo do estilo Transformers: "more beneath the eyes".

Você nem vai ver esse treco.

E puta que pariu que isso é fonte piscando. Use um blink via css e mate 3000000 crianças epiléticas.

Tanure

unread,
Mar 25, 2010, 4:23:56 PM3/25/10
to jque...@googlegroups.com
acabei de me sentir feliz, por ignorar certos topicos.

vejo muito isso.. pessoal complica o negocio..

outro dia vi um plugin imenso que afzia exatamente a função do velho e odiado <marquee>


weslei

unread,
Mar 25, 2010, 5:02:05 PM3/25/10
to jQuery (Brasil)
valew pela dica.E fonte piscando , nao é para um site,e apenas uns
testes que eu faco mesmo, to aprendendo, entao fico testando coisas,
pra ver oq eu sei, e oque eu nao sei..

so mais uma coisinha, conhece alguma ide pra desenvolver java script
e jquery??ta osso digitar sem ide pq se falta um ponto e virgula o
javascript nao avisa..valew ai.

On Mar 25, 5:19 pm, Leo Balter <leonardo.bal...@gmail.com> wrote:
> .delay() pelo amor de santo deus.
>
> Callback imediato nesse caso é algo do estilo Transformers: "more beneath
> the eyes".
>
> Você nem vai ver esse treco.
>
> E puta que pariu que isso é fonte piscando. Use um blink via css e mate
> 3000000 crianças epiléticas.
>

> Em 25 de março de 2010 09:26, Ruan Carlos <ruanl...@gmail.com> escreveu:
>
> > Use o callback das funções, uma chama a outra.
>
> >http://api.jquery.com/animate/
>

> >> <jquery-br%2Bunsu...@googlegroups.com<jquery-br%252Buns...@googlegroups.com>


>
> >> > > .
> >> > > Para obter mais opções, visite esse grupo em
> >> > >http://groups.google.com/group/jquery-br?hl=pt-BR.
>
> >> > --
> >> > -----------------------------------------------------------------
> >> > Ruan Carlos
> >> > @ruanltbgwww.ruancarlos.com.br
> >> > Desenvolvedor web
>
> >> --
> >> Você está recebendo esta mensagem porque se inscreveu no grupo "jQuery
> >> (Brasil)" dos Grupos do Google.
> >> Para postar neste grupo, envie um e-mail para jque...@googlegroups.com.
> >> Para cancelar a inscrição nesse grupo, envie um e-mail para
> >> jquery-br+...@googlegroups.com<jquery-br%2Bunsu...@googlegroups.com>
> >> .
> >> Para obter mais opções, visite esse grupo em
> >>http://groups.google.com/group/jquery-br?hl=pt-BR.
>
> > --
> > -----------------------------------------------------------------
> > Ruan Carlos

> > @ruanltbg
>
> >www.ruancarlos.com.br
> > Desenvolvedor web
>
> > --
> > Você está recebendo esta mensagem porque se inscreveu no grupo "jQuery
> > (Brasil)" dos Grupos do Google.
> > Para postar neste grupo, envie um e-mail para jque...@googlegroups.com.
> > Para cancelar a inscrição nesse grupo, envie um e-mail para

Tanure

unread,
Mar 25, 2010, 6:38:36 PM3/25/10
to jque...@googlegroups.com
uso aptana, que tem ate autocomplete pta jquery, jqueryUI, mootools, scrptacolous, etc

Leo Balter

unread,
Mar 25, 2010, 6:40:57 PM3/25/10
to jque...@googlegroups.com
Aptana Studio, free e pra qq sistema operacional

Para cancelar a inscrição nesse grupo, envie um e-mail para jquery-br+...@googlegroups.com.

Leo Balter

unread,
Mar 25, 2010, 11:00:49 PM3/25/10
to jque...@googlegroups.com
Tava aqui varrendo uns materiais e acabei de lembrar uma coisa que resolve todo o problema inicial desse tópico:

$(".block").animate( { backgroundColor: 'pink' }, 1000).animate( { backgroundColor: 'blue' }, 1000);

Só colocar um animate atrás do outro...

weslei

unread,
Mar 26, 2010, 11:53:18 PM3/26/10
to jQuery (Brasil)
isso nao fica infinnito, simplesmente executa e para..

On 26 mar, 00:00, Leo Balter <leonardo.bal...@gmail.com> wrote:
> Tava aqui varrendo uns materiais e acabei de lembrar uma coisa que resolve
> todo o problema inicial desse tópico:
>
> $(".block").animate( { backgroundColor: 'pink' }, 1000).animate( {
> backgroundColor: 'blue' }, 1000);
>
> Só colocar um animate atrás do outro...
>

> Em 25 de março de 2010 19:40, Leo Balter <leonardo.bal...@gmail.com>escreveu:
>
>
>
> > Aptana Studio, free e pra qq sistema operacional
>

> >> > >> > > jquery-br+...@googlegroups.com<jquery-br%2Bunsubscribe@googlegroups .com>
> >> <jquery-br%2Bunsu...@googlegroups.com<jquery-br%252Bunsubscribe@googleg roups.com>
>
> >> > >> <jquery-br%2Bunsu...@googlegroups.com<jquery-br%252Bunsubscribe@googleg roups.com>
> >> <jquery-br%252Buns...@googlegroups.com<jquery-br%25252Bunsubscribe@goo glegroups.com>


>
> >> > >> > > .
> >> > >> > > Para obter mais opções, visite esse grupo em
> >> > >> > >http://groups.google.com/group/jquery-br?hl=pt-BR.
>
> >> > >> > --
> >> > >> > -----------------------------------------------------------------
> >> > >> > Ruan Carlos
> >> > >> > @ruanltbgwww.ruancarlos.com.br
> >> > >> > Desenvolvedor web
>
> >> > >> --
> >> > >> Você está recebendo esta mensagem porque se inscreveu no grupo
> >> "jQuery
> >> > >> (Brasil)" dos Grupos do Google.
> >> > >> Para postar neste grupo, envie um e-mail para
> >> jque...@googlegroups.com.
> >> > >> Para cancelar a inscrição nesse grupo, envie um e-mail para

> >> > >> jquery-br+...@googlegroups.com<jquery-br%2Bunsubscribe@googlegroups .com>
> >> <jquery-br%2Bunsu...@googlegroups.com<jquery-br%252Bunsubscribe@googleg roups.com>


>
> >> > >> .
> >> > >> Para obter mais opções, visite esse grupo em
> >> > >>http://groups.google.com/group/jquery-br?hl=pt-BR.
>
> >> > > --
> >> > > -----------------------------------------------------------------
> >> > > Ruan Carlos
> >> > > @ruanltbg
>
> >> > >www.ruancarlos.com.br
> >> > > Desenvolvedor web
>
> >> > > --
> >> > > Você está recebendo esta mensagem porque se inscreveu no grupo "jQuery
> >> > > (Brasil)" dos Grupos do Google.
> >> > > Para postar neste grupo, envie um e-mail para
> >> jque...@googlegroups.com.
> >> > > Para cancelar a inscrição nesse grupo, envie um e-mail para

> >> > > jquery-br+...@googlegroups.com<jquery-br%2Bunsubscribe@googlegroups .com>
> >> <jquery-br%2Bunsu...@googlegroups.com<jquery-br%252Bunsubscribe@googleg roups.com>


>
> >> > > .
> >> > > Para obter mais opções, visite esse grupo em
> >> > >http://groups.google.com/group/jquery-br?hl=pt-BR.
>
> >> --
> >> Você está recebendo esta mensagem porque se inscreveu no grupo "jQuery
> >> (Brasil)" dos Grupos do Google.
> >> Para postar neste grupo, envie um e-mail para jque...@googlegroups.com.
> >> Para cancelar a inscrição nesse grupo, envie um e-mail para

> >> jquery-br+...@googlegroups.com<jquery-br%2Bunsubscribe@googlegroups .com>

Leo Balter

unread,
Mar 27, 2010, 12:21:44 PM3/27/10
to jque...@googlegroups.com
while(true) {
   $(".block").animate( { backgroundColor: 'pink' }, 1000).animate( { backgroundColor: 'blue' }, 1000);
}

isso?

Para cancelar a inscrição nesse grupo, envie um e-mail para jquery-br+...@googlegroups.com.

Leo Balter

unread,
Mar 27, 2010, 12:25:46 PM3/27/10
to jque...@googlegroups.com
São coisas simples que você poderia olhar rapidamente na documentação do jquery. As vezes parece preguiça e é muito enjoado trazer informações para preguiçosos.

Se aquilo não funcionar direito: 

function repeteTodaHora() {
   $(".block").animate( { backgroundColor: 'pink' }, 1000).animate( { backgroundColor: 'blue' }, 1000, repeteTodaHora() );
}

weslei

unread,
Mar 27, 2010, 4:10:26 PM3/27/10
to jQuery (Brasil)
voce ta me chamando de preguiçoso??Voce que nao leu minha pergunta
cara.....eu a disse que while(true) nao funciona...

On 27 mar, 08:25, Leo Balter <leonardo.bal...@gmail.com> wrote:
> São coisas simples que você poderia olhar rapidamente na documentação do
> jquery. As vezes parece preguiça e é muito enjoado trazer informações para
> preguiçosos.
>
> Se aquilo não funcionar direito:
>
> function repeteTodaHora() {
>    $(".block").animate( { backgroundColor: 'pink' }, 1000).animate(
> { backgroundColor: 'blue' }, 1000, repeteTodaHora() );
>
> }
>
> Em 27 de março de 2010 13:21, Leo Balter <leonardo.bal...@gmail.com>escreveu:
>
>
>
> > while(true) {
> >    $(".block").animate( { backgroundColor: 'pink' }, 1000).animate(
> > { backgroundColor: 'blue' }, 1000);
> > }
>
> > isso?
>

> >> <jquery-br%252Bunsubscribe@googleg roups.com>
>
> >> > >> > >> .
> >> > >> > >> Para obter mais opções, visite esse grupo em
> >> > >> > >>http://groups.google.com/group/jquery-br?hl=pt-BR.
>
> >> > >> > > --
> >> > >> > > -----------------------------------------------------------------
> >> > >> > > Ruan Carlos
> >> > >> > > @ruanltbg
>
> >> > >> > >www.ruancarlos.com.br
> >> > >> > > Desenvolvedor web
>
> >> > >> > > --
> >> > >> > > Você está recebendo esta mensagem porque se inscreveu no grupo
> >> "jQuery
> >> > >> > > (Brasil)" dos Grupos do Google.
> >> > >> > > Para postar neste grupo, envie um e-mail para
> >> > >> jque...@googlegroups.com.
> >> > >> > > Para cancelar a inscrição nesse grupo, envie um e-mail para
> >> > >> > > jquery-br+...@googlegroups.com<jquery-br%2Bunsubscribe@googlegroups .com>

> >> <jquery-br%2Bunsubscribe@googlegroups .com>
> >> > >> <jquery-br%2Bunsu...@googlegroups.com<jquery-br%252Bunsubscribe@googleg roups.com>

Leo Balter

unread,
Mar 27, 2010, 10:29:33 PM3/27/10
to jque...@googlegroups.com
Entao usa a porra do Google e leia a merda do manual antes de vir perguntar, aí não te chamo de preguiçoso.

Para cancelar a inscrição nesse grupo, envie um e-mail para jquery-br+...@googlegroups.com.

Ruan Carlos

unread,
Mar 27, 2010, 10:45:06 PM3/27/10
to jque...@googlegroups.com
Opa opa opa.

O resto da conversa que seja em MP ou PVP.

Obrigado.

Ricardo Tomasi

unread,
Mar 27, 2010, 11:12:32 PM3/27/10
to jQuery (Brasil)
Dá licença, estamos num grupo público de discussão e suporte. Por
sinal a tua sugestão também não funciona porque tu chamou a função
repeteTodaHora ao invés de passar a referência, preguiça de testar?
Tudo bem que tem gente que faz perguntas idiotas ou que podem ser
respondidas lendo documentação, mas esse não é o caso.

while(true) não funciona porque trava o browser, tu está acumulando
milhares de chamadas da animação por segundo dependendo da velocidade
do processamento. Além disso, renderização HTML nunca ocorre dentro de
um loop, só depois que ele termina - o processamento javascript trava
toda a interface. Por exemplo:

var i=0;
while(i<100){
document.body.innerHTML = i;
i++;
}

Vai fazer o body ser igual a 99. Não vai passar pelos numeros
intermediários. Se tu usar um número maior, o browser trava até acabar
o loop e aí atualiza com o último número.

Então, pra fazer uma animação "infinita" o único jeito é usando
callbacks mais ou menos como o Leo sugeriu:

function loopAnimacao(){
$("#principal")
.animate({"font-size": "50px"}, 800);
.animate({"font-size": "80px"}, 800, loopAnimacao);
};
loopAnimacao();

ou

(function(){
$("#principal")
.animate({"font-size": "50px"}, 800);
.animate({"font-size": "80px"}, 800, arguments.callee);
})();

On 27 mar, 23:29, Leo Balter <leonardo.bal...@gmail.com> wrote:
> Entao usa a porra do Google e leia a merda do manual antes de vir perguntar,
> aí não te chamo de preguiçoso.
>

> > > >> <jquery-br%252Bunsubscribe@googleg roups.com>
>
> > > >> > >> > >> .
> > > >> > >> > >> Para obter mais opções, visite esse grupo em
> > > >> > >> > >>http://groups.google.com/group/jquery-br?hl=pt-BR.
>
> > > >> > >> > > --
>
> > -----------------------------------------------------------------
> > > >> > >> > > Ruan Carlos
> > > >> > >> > > @ruanltbg
>
> > > >> > >> > >www.ruancarlos.com.br
> > > >> > >> > > Desenvolvedor web
>
> > > >> > >> > > --
> > > >> > >> > > Você está recebendo esta mensagem porque se inscreveu no
> > grupo
> > > >> "jQuery
> > > >> > >> > > (Brasil)" dos Grupos do Google.
> > > >> > >> > > Para postar neste grupo, envie um e-mail para
> > > >> > >> jque...@googlegroups.com.
> > > >> > >> > > Para cancelar a inscrição nesse grupo, envie um e-mail para
> > > >> > >> > > jquery-br+...@googlegroups.com<jquery-br%2Bunsubscribe@googlegroups .com>
> > <jquery-br%2Bunsubscribe@googlegroups .com>

> > > >> <jquery-br%2Bunsubscribe@googlegroups .com>
> > > >> > >> <jquery-br%2Bunsu...@googlegroups.com<jquery-br%252Bunsubscribe@googleg roups.com>
> > <jquery-br%252Bunsubscribe@googleg roups.com>

> ...
>
> mais »

weslei

unread,
Mar 31, 2010, 11:21:41 PM3/31/10
to jQuery (Brasil)
Muito obrigado, funciona perfeitamente e valeu pela explicacao.

On Mar 28, 12:12 am, Ricardo Tomasi <ricardob...@gmail.com> wrote:
> Dá licença, estamos num grupo público de discussão e suporte. Por
> sinal a tua sugestão também não funciona porque tu chamou a função
> repeteTodaHora ao invés de passar a referência, preguiça de testar?
> Tudo bem que tem gente que faz perguntas idiotas ou que podem ser
> respondidas lendo documentação, mas esse não é o caso.
>
> while(true) não funciona porque trava o browser, tu está acumulando
> milhares de chamadas da animação por segundo dependendo da velocidade
> do processamento. Além disso, renderização HTML nunca ocorre dentro de

> umloop, só depois que ele termina - o processamento javascript trava


> toda a interface. Por exemplo:
>
> var i=0;
> while(i<100){
>    document.body.innerHTML = i;
>    i++;
>
> }
>
> Vai fazer o body ser igual a 99. Não vai passar pelos numeros
> intermediários. Se tu usar um número maior, o browser trava até acabar

> oloope aí atualiza com o último número.

> ...
>
> read more »

Marcos Fábio

unread,
Apr 1, 2010, 1:08:38 PM4/1/10
to jque...@googlegroups.com
cara tem os metodos  propio do javascrip

http://rogeriolino.wordpress.com/2006/12/19/javascript-settimeout-e-setinterval/

Fala a diferenca entre o setTimeout() e setInterval()

No seu caso vc pode usar assim


window.setInterval(function(){

}, 1000);


Para cancelar a inscrição nesse grupo, envie um e-mail para jquery-br+...@googlegroups.com.

Lázaro Farias do Espírito Santo

unread,
Apr 1, 2010, 5:03:05 PM4/1/10
to jque...@googlegroups.com
Gostaria de parabenizar o Ricardo pela educação e paciência para ensinar os novatos.
Acredito que ninguém aqui nasceu sabendo alguma coisa! A comunidade está precisando de gente como o Ricardo.

Att,

--
Lázaro Farias do Espírito Santo
___________________________
Service Desk II - Analista SAP
TIC - Tecnologia da Informação e Telecomunicações

MCP Certificad ID#5991367

Tanure

unread,
Apr 1, 2010, 6:19:43 PM4/1/10
to jque...@googlegroups.com
é facil aqui e falar mal dos que ajudam.. 

dar umas respostas atravessadas, mandar o cara procurar tb é ensinar .. no minimo ensinar a ter proatividade e buscar melhor a resposta ou pelo menos formular direito uma questão


se vc olhar os membros mais ativos:

Desde o início
858[Moderador] Ruan Carlos
856Suisso
356Tanure
344Leo Balter
318Ricardo Tomasi
317JunioR
244Diogo Roldão
221Pablov
200giovannido...@gmail.com
194Tigurio



vai ver que os mais ativos sempre falar algo assim pra uma pergunta boba.. e nao somos donos disso aqui nao.. em todas listas que participo é a mesma coisa... sempre tem resposta atravessada pra pergunta boba, as vezes com ajuda, as vezes nao.. e sempre tem os 'calma gente.. tadinho'

eu tenho que moderar o que falo, mas o pessoal tem que moderar o que pergunta tb

Ruan Carlos

unread,
Apr 1, 2010, 6:31:33 PM4/1/10
to jque...@googlegroups.com
Ae passei o Suissaaaaaaaaaaaaaaaaaaaaaaaaa

ATENÇÃO

Eu estou colocando meu cargo a disposição de qualquer pessoas que já participe do grupo e tenha mandado pelo menos uma mensagem. Mais informações em PVP.


-----------------------------------------------------------------
Ruan Carlos
@ruanltbg
www.ruancarlos.com.br
Desenvolvedor web


--

Tanure

unread,
Apr 1, 2010, 6:33:22 PM4/1/10
to jque...@googlegroups.com
e quem é esse?

Tanure

unread,
Apr 1, 2010, 6:34:51 PM4/1/10
to jque...@googlegroups.com
ê primeiro de abril.

imagino eu nesse negócio..

isso aqui ia virar uma filial da lista 'web-flame-trolls'

Suissa Corp

unread,
Apr 1, 2010, 8:52:56 PM4/1/10
to jque...@googlegroups.com
Suissa sou eu =D
aqui conhecido como Jean

2010/4/1 Tanure <leta...@gmail.com>:
> e quem é esse?


>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "jQuery
> (Brasil)" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para jque...@googlegroups.com.
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> jquery-br+...@googlegroups.com.
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/jquery-br?hl=pt-BR.
>

--
Jean C. Nascimento
Desenvolvedor Web
http://twitter.com/suissacorp

http://www.suissacorp.com.br/

WebDeveloper
http://www.wgbnet.com.br/

Suissa

unread,
Apr 1, 2010, 9:03:07 PM4/1/10
to jque...@googlegroups.com
Vc tem q modera akeles off topics maleditos! 

2010/4/1 Ruan Carlos <ruan...@gmail.com>
1A5.gif
Reply all
Reply to author
Forward
0 new messages