Ver Mensaje Individual
  #5 (permalink)  
Antiguo 26/12/2011, 14:42
Avatar de waldragon
waldragon
 
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 14 años
Puntos: 55
Respuesta: se puede desactivar un setinterval ?

Solucionado, lei sobre clearinterval y eventos del mouse y logre hacerlo con esto:

Código PHP:
Ver original
  1. <script>
  2. function noact( )
  3. {
  4. clearInterval(t);
  5. }
  6. function siact( )
  7. {
  8. t=setInterval(function(){
  9. document.getElementById('scr').scrollIntoView(true)},1000);};
  10. </script>
  11.  
  12.  <div align="center">
  13. <div id="vercont" onMouseOver="noact( )" onMouseOut="siact( )">
  14. <div id="div1"></div>
  15. <span id="scr"></span>
  16. </div></div>


Use el evento onmouseover para cancelar setinterval con un clearinterval y el evento onmouseout para iniciar de nuevo el setinterval, entonces cuando el usuario use la barra de desplazamiento, automaticamente se va a parar el setinterval y va a reanudarse cuando saque el mouse de arriba del div.

Estoy conforme con el resultado, aunque tiene dos defectos:
1- El setinterval se comienza a aplicar recien cuando se activa el evento onmouseout, o sea que si no pasa el mouse por arriba de vercont, no comenzara el ciclo.
2-Si el usuario deja el mouse encima del div vercont, no se activara el evento onmouseout y por lo tanto no se movera la barra hacia abajo, con el problema que va a dejar los comentarios nuevos abajo, no es grave porque se soluciona sacando el mouse...

pienso que lo mejor seria usar el evento onclick y si existe uno que se active al soltar el boton del mouse, pero por ahora estoy conforme con el resultado, gracias isabel y xtreme...