2011-05-12 8 views

Respuesta

62

Puede controlar la posición de desplazamiento de la ventana actual y actuar en consecuencia. Si desea que el desplazamiento sea después de cierto punto (el código siguiente hará cualquier desplazamiento, incluso 1px), simplemente verifique $(this).scrollTop() > n en la declaración if, donde n es el desplazamiento deseado.

http://jsfiddle.net/robert/fjXSq/

$(window).scroll(function() { 
    if ($(this).scrollTop()) { 
     $('#toTop:hidden').stop(true, true).fadeIn(); 
    } else { 
     $('#toTop').stop(true, true).fadeOut(); 
    } 
}); 
+0

solución impresionante !! Tan fácil como cualquier cosa ... –

+0

gracias. ¡esta solución es fácil de usar y entender! –

+0

Solo para asegurarse de no tener problemas de desvanecimiento con '' '.scrollTop()' ''> n, agregue '' 'if ($ ('# toTop'). Css ('display') == none) '' 'before' '' .fadeOut() '' ' – thewisenerd

1

vieja pregunta, pero pensé que como he implementado una para mí para dar mi granito de arena. Creo que es mejor usar un setTimeout para proteger contra múltiples eventos disparados. De esta manera:

function showButton() { 


    var button = $('#my-button'), //button that scrolls user to top 
     view = $(window), 
     timeoutKey = -1; 

    $(document).on('scroll', function() { 
     if(timeoutKey) { 
      window.clearTimeout(timeoutKey); 
     } 
     timeoutKey = window.setTimeout(function(){ 

      if (view.scrollTop() < 100) { 
       button.fadeIn(); 
      } 
      else { 
       button.fadeOut(); 
      } 
     }, 100); 
    }); 
} 

$('#my-button').on('click', function(){ 
    $('html, body').stop().animate({ 
     scrollTop: 0 
    }, 500, 'linear'); 
    return false; 
}); 

//call function on document ready 
$(function(){ 
    showButton(); 
}); 
Cuestiones relacionadas