Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/07/2014, 12:30
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Parar de ejecutar el script

Quizá en algún momento el valor del scroll sea menor que cero, con lo cual seguirá siendo diferente a dicho valor y por eso la función se sigue ejecutando. Yo lo haría así:

Código Javascript:
Ver original
  1. function scrollToTop() {
  2.     var scroll = window.scrollY;
  3.  
  4.     if (scroll){
  5.         var aux = scroll,
  6.             interval = setInterval(function(){
  7.                 aux -= 100;
  8.                 window.scroll(0, aux);
  9.                 if (aux <= 0) clearInterval(interval);
  10.             }, 1);
  11.     }
  12. }

De este modo, tomo el valor desplazado por la barra de desplazamiento y si este es mayor a cero, asigno dicho valor a una variable auxiliar, a la cual le iré disminuyendo el valor asignado de 100 en 100 y será su valor actualizado el que usaré para desplazar a la barra hacia la parte superior. Esto se repetirá cada milésima de segundo hasta que el valor de la variable auxiliar sea menor o igual a cero, en ese momento se termina el ciclo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand