Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ktinho

tempo de execução de função

Recommended Posts

galera eu to tentando fazer um if no js para ver se consigo detectar se a pagina foi clicada e muda o background de uma div e executar em 1 segundo e depois voltar para o ultimo estado.

veja como seria a função mais ou menos.

 

só que tenho que fazer uma comparação dentro do if do click que compara o valor da variavel e depois conforme o valor da variavel back ground muda para um outro .

 

veja a gambiarra:

 

<html>

       <script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>


<heady>




<style type="text/css">

#animado {
   background: url(10.gif) no-repeat;
   position: absolute;
   width: 200px;
   height: 200px;

}

</style>
<script type="text/javascript">





$('body').click(function(evt) {

var  x1 =  evt.clientX-20;
var y1 = evt.clientY;
$(document).ready(function(msg) {

$("#animado").animate({left: x1, top: y1}, 1000);

});
var IE = document.all?true:false;
//if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
var x2;
var y2;
function getMouseXY(e) {
if (IE) { // grab the x-y pos.s if browser is IE
//tempX = event.clientX + document.body.scrollLeft;
//tempy = event.clientY + document.body.scrollTop;
}
else {  // grab the x-y pos.s if browser is NS
x2 = e.pageX;
y2 = e.pageY;
}  


var e=x1-x2;
var f=y1-y2;
var g=x2-x1;
var h=y2-y1;


//if (x2 < 0){x2 = 0;}
//if (y2 < 0){y2 = 0;}
if (f > 0 && g > 0){im="url(12.gif)";}
if (f < 0 && g < 0){im="url(5.gif)";}
if (f > 0 && g < 0){im="url(2.gif)";}
if (f < 0 && g > 0){im="url(9.gif)";}
if (f < 0 && f > -120 && g > 200){im="url(11.gif)";}
if (f < 0 && f > -120 && g < 17){im="url(4.gif)";}
if (f < -40 && g > 0 && g < 170){im="url(7.gif)";}
if (f > 0 && g > 0 && g < 80){im="url(1.gif)";} 
if('click'){if(im="url(12.gif)"){im = "url(321.gif)"} ;}
var im;
var z = im;
$('#animado').css("background-image", z);
document.getElementById("vx").innerHTML = x2;
document.getElementById("vy").innerHTML = y2;
document.getElementById("x1").innerHTML = x1;
document.getElementById("y1").innerHTML = y1;


//var z = "url(10.gif)";


document.getElementById("e").innerHTML = e;
document.getElementById("f").innerHTML = f;
document.getElementById("g").innerHTML = g;
document.getElementById("h").innerHTML = h;






};


});



</script>

<body>

<div id="left">x2 <span id="vx"></span></div><br>
<div id="y">Y2  <span id="vy"></span></div>
<div id="left">x1 <span id="x1"></span></div><br>
<div id="y">y1  <span id="y1"></span></div>

<div id="left">x2-x1 <span id="g"></span></div><br>
<div id="y">y2-y1  <span id="h"></span></div>
<div id="left">x1-x2 <span id="e"></span></div><br>
<div id="y">y1-y2  <span id="f"></span></div>

       <div id="animado">
           <h3></h3>
       </div>
   </body>
</heady>
</html>

 

mais só fica com o background do click quero que depois de ter executado a função do click volte para a função do getelemt.

 

exemplo: é uma animação de um bonequinho ai quando você passa o mouse em determinado lugar ele gira olhando para o mouse, ai quando você clicar na pagina ativa um novo background onde é um bonequinho em movimento altomaticamente a div se move e nesse código a div leva em média um segudo para atingir seu lugar final.

tipo assim

if('click'){if (x = backgroundx){x = backgoundx2};}
$('#animado').css("background-image", x);

só que se eu fazer isso desabilita a função getelemtbyid que faz o avatar olhar para onde o mouse esta, e só fica o background do click, ai quando eu clicar em outro lugar que deveria ser outro background fica só o ultimo, por isso quero determinar um segundo para função retornar o estado antigo.

 

sera que eu devo declarar uma nova função? como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode utilizar as funções setTimeout() e setInterval(), para executar um código 1 segundo depois apos o evento MOUSE_CLICK

 

Ou seja, dentro da função executada quando o mouse é clicado, você deve colocar um código como o seguinte.

 

setTimeout("função_a_ser_executada", tempo_em_milisegundos);

 

e então criar uma função que retorne o div para o lugar desejado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja tentei colocar setTimeout e setinternal e não funciona quando clica a função click desabilita a outra e não retorna a abilitar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.