JScript

Programação & Desenvolvimento


Você não está conectado. Conecte-se ou registre-se

Executar código somente após um tempo

2 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1Executar código somente após um tempo Empty Executar código somente após um tempo Qua 12 Mar 2014, 2:05 pm

waghcwb

waghcwb
Desenvolvedores
Desenvolvedores

Olá pessoal, eu tenho o seguinte código:
Código:
$('.box-services').hover(function(){
      $('.box-portfolio, .box-contact').hide();
      $(this).removeClass('col-md-6').addClass('col-md-12').stop().animate({'height':'300px'});
      $('.messageInBox').fadeIn();   
         
},function(){
      $('.box-portfolio, .box-contact').fadeIn();
      $(this).removeClass('col-md-12').stop().animate({'height':'110px'}).addClass('col-md-6');
      $('.messageInBox').fadeOut();
});

Preciso que ele somente seja executado após um tempo com o evento hover.. Por exemplo, o cara põe o mouse em cima do elemento, e tem que esperar alguns milésimos até que a função seja executada.. Eu tentei alguns códigos com setInterval() mas sem resultados aqui.. Podem me ajudar com isso amigos?

Nota: Existem diversos código semelhantes a esse no meu código completo! Eu posso fazer os métodos para cada função, mas caso saibam uma forma de faze-lo meio que reaproveitando código, seria ótimo..

http://wagneraugusto.com.br/

JScript

JScript
Administradores
Administradores

Olá!

O certo seria com a função setTimeout() e não com a setInterval(), porém o que desejas é mais complexo do que imagina se for da forma que eu estou pensando:
"Ao pairar o mouse em cima do elemento, devo esperar algo em torno de uns 0,400 segundos até que a função ative, porém se caso eu desista ou simplesmente passei o mouse por engano, a função deve reconhecer que o mouse não está mais em cima do elemento e com isso deve cancelar o que seria feito..."

É basicamente isso?

JS

http://autoitbrasil.com

waghcwb

waghcwb
Desenvolvedores
Desenvolvedores

Exatamente amigo! Esse efeito as vezes incomoda, porque os elementos são grandes e as vezes passamos o mouse por engano neles ai fazem toda a animação...

http://wagneraugusto.com.br/

waghcwb

waghcwb
Desenvolvedores
Desenvolvedores

Bom, como sabem não gosto de dar "up's" nos meus posts, então fui em busca da solução afinal eu precisava dela logo :S
Enfim.. Se alguém precisar disso mais tarde, aqui está o código usado
Código:
var pairar;
$('.box-services').hover(function () {
        pairar = setTimeout(function (self) {
    $('.box-portfolio, .box-contact').hide();
    $(self).removeClass('col-md-6').addClass('col-md-12').stop().animate({'height': '300px'});
    $('.messageInBox').fadeIn();
}, 700, this);
}, function () {
        clearTimeout(pairar);
    $('.box-portfolio, .box-contact').fadeIn();
    $(this).removeClass('col-md-12').stop().animate({'height': '110px'}).addClass('col-md-6');
    $('.messageInBox').fadeOut();
});

Se alguém souber uma solução melhor, compartilhe com a gente ai Very Happy

http://wagneraugusto.com.br/

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos