Executar código somente após um tempo
2 participantes
Página 1 de 1
Executar código somente após um tempo
Olá pessoal, eu tenho o seguinte código:
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..
- 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..
Re: Executar código somente após um tempo
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
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
Re: Executar código somente após um tempo
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...
Re: Executar código somente após um tempo
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
Se alguém souber uma solução melhor, compartilhe com a gente ai
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
Tópicos semelhantes
» Redirecionar após logout...
» Executar scripts para determinados grupos apenas
» Mostrar o Widget somente no índice!
» Executar scripts para determinados grupos apenas
» Mostrar o Widget somente no índice!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|