1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ao fim de X segundos sem mexer no rato, volta à página Index.html

Discussão em 'Web Development' iniciada por ScalaZone, 11 de Agosto de 2008. (Respostas: 14; Visualizações: 928)

  1. ScalaZone

    ScalaZone Power Member

    Boas,
    na primeira vez que coloquei esta dúvida, esqueci de mencionar um pequeno pormenor.
    Ou seja, realmente quero que ao fim de X segundos ele volte à página inicial, mas só quando deixar de haver interactividade com o rato.
    Ou seja, estamos a navegas pelo site, e de repente deixamos de mexer com o rato, ao fim de X segundos se ninguém lhe mexer, ele volta à página inicial.

    Alguém será capaz de me arranjar esse fragmento de código ?

    Este foi o código que me deram, mas neste caso , ao fim de 3 segundos, estando a mexer ou não com o rato, ele volta para a página inicial.
     
  2. hostmake

    hostmake Power Member

    Maneira mais simples, é usares o onmousemove e atribuires uma função JS que reponha o tempo em segundos que queres, e se essa função chegar a 0, é porque o onmousemove não executou e não repos os segundos, portanto redireccionas.
     
  3. MPalhas

    MPalhas Power Member

    não é a solução mais precisa, e pode certamente ser melhorada mas foi o que se arranjou

    Código:
    <script type="text/javascript">
    //variavel com o tempo que falta para redireccionar
    var tempo=3;
    
    //função que r
    function reduzirTempo() {
       tempo=tempo-1;
       if (tempo_inicial<=0) {
          tempo_inicial=3;  //isto é preciso para não redireccionar logo quando se faz retroceder para esta página
          window.location="INSERIR_URL_AQUI";
       }
    }
    
    setInterval(reduzirTempo, 1000);</script>
    
    <body onMouseMove="tempo_inicial=3" onMouseClick="tempo_inicial=3">
    Isto vai para outro lado a menos que se clique ou se mexa o rato</body>
     
  4. hostmake

    hostmake Power Member

    Era isso que eu estava a dizer, bom trabalho Mpalhas, acho que é a solução mais precisa quando se fala de movimento de rato
     
  5. ScalaZone

    ScalaZone Power Member

    Solução


    Ena, obrigadão!
    Desconhecia essa variável reservada (onMouseMove).
    :x2:
     
  6. ScalaZone

    ScalaZone Power Member

    Dúvida


    Olha,
    já pus o código tal como o tens na minha página para testar antes de o modificar, mas não deu em nada ! =|
    Colei mesmo a seguir à tag <body> e dentro do <body> acrescentei essa tua linha de código que tens dentro do <body>

    Foi assim que interpretei esse código!
    Estou correcto? Ou nem por isso?
    :lol:
     
  7. MPalhas

    MPalhas Power Member

    lê a 2ª linha da minha assinatura :D

    a tag <script> e o seu conteudo copias para dentro do HEAD, e no BODY apenas acrescentas aquelas parametros do onClick e onMouseMove

    e depois tens que editar no script a parte onde diz INSERIR_URL_AQUI e por o link para onde queres redireccionar
     
  8. ScalaZone

    ScalaZone Power Member

    Ainda não deu

    Lol, eu sei que tens razão :002:
    A minha área de programação não é esta :007:
    Uso muito o nosso "amigo", mas quando ele não ajuda, procura-se os "inimigos".

    Só que já experimentei, e não me está a redirecionar =|
    Isso não terá que estar no onLoad da página, ou assim qualquer coisa?
    Abraço
     
  9. hostmake

    hostmake Power Member

    Não, porque ele já tem o setInterval e não está dentro de nenhuma função, mas se quiseres criar uma para ele, depois chamas a função dentro do body onload();


    Edit: o código dele funciona
     
  10. ScalaZone

    ScalaZone Power Member

    Pois a mim não dá lol

    Pois,
    pensei nisso.
    Mas não é necessário, uma vez que ele usa essa função "setInterval", não é?

    Eu uso o Firefox, às vezes o código não funciona e com o IE já funciona. Mas agora nem num nem no outro dá.
    Já compreendi o script, mas acho que não entra no If, logo não decrementa, daí não rederecionar =/
     
  11. MPalhas

    MPalhas Power Member

    eu usei precisamente o firefox para testar. e não está ai nada que á partida possa dar problemas em browsers diferentes, por isso o problema não deve ser dai

    tenta por um alert(tempo); em diferentes pontos do código (vários sitios da função, dentro do onClick, e fora da função, junto ao setInterval)
    assim vês se o código chega a ser executado e ao mesmo tempo vais sabendo o valor da variavel

    e instala também o firebug (add-on do firefox) que ajuda muito a detectar erros no javascript
     
  12. ScalaZone

    ScalaZone Power Member

    Tenho a página em .html

    Reparei que ao escrever aquilo dentro da tag <body> ele não me reconhece o comando mouseClick ou o mouseMove.

    Terá alguma coisa haver com isso ?
    Ou é suposto funcionar em páginas em HTML também ?
     
  13. hostmake

    hostmake Power Member

    Ok, a parte de que eu disse que o código dele funciona, só tem um pequeno pormenor, não funciona.. ele usou duas variáveis, e depois o coutndown ficou mal feito.

    aqui está uma pagina exemplo

    Código:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>teste timer</title></title>
    <script type="text/javascript">
    //variavel com o tempo que falta para redireccionar
    var tempo_inicial=3;
    //função que r
    function reduzirTempo() {
       tempo_inicial=tempo_inicial-1;
       if (tempo_inicial<=0) {
          tempo_inicial=3;  //isto é preciso para não redireccionar logo quando se faz retroceder para esta página
          window.location="http://www.google.com";
       }
    }
    setInterval(reduzirTempo, 1000);</script>
    </head>
    <body onMouseMove="tempo_inicial=3">
    Isto vai para outro lado a menos que se clique ou se mexa o rato</body>
    </html>
    
     
  14. MPalhas

    MPalhas Power Member

    eishh que estupidez minha >(>(

    tinha começado por ter duas variaveis, mas podia jurar que tinha testado depois ao mudar os nomes. desculpa lá isso
     
  15. ScalaZone

    ScalaZone Power Member

    Exactamente


    Foi isso mesmo, o código baralhou-se no uso dessas variáveis.
    Bem visto.
    É por isso que sempre programei com mais do que uma pessoa, sabe-se sempre onde está o erro.
    Obrigadão aos dois, assim já funcionou
    :x2:
    Bom trabalho :banjump:
     

Partilhar esta Página