2010-11-10 23 views

Respuesta

332

Puede configurar el scrollTop, así:

$('html,body').scrollTop(0); 

O si quieres un poco de animación en lugar de un broche de presión a la parte superior:

$('html, body').animate({ scrollTop: 0 }, 'fast'); 
+0

buena ... He usado scrollTo plug-in para jQuery antes de lograr esto - podría haber ahorrado un poco de código con el número ... gracias por la lección; -) –

+3

No funciona para mí en Firefox 30 y Chrome 36. –

+0

Simple y humilde :) –

103

Sin animación, puede utilizar llanura JS :

scroll(0,0) 

Con animación, marque la respuesta de Nick.

+4

¿Es compatible con todos los navegadores? – Pacerier

+1

'scroll' está en el estándar de CSSOM, mientras que' scrollTo' se definió originalmente en DOM Level 0 y no forma parte de ningún estándar. Sin embargo, CSSOM incluye 'scrollTo' para compatibilidad con versiones anteriores. –

+3

Creo que 'scroll' es ampliamente compatible. Ver http://stackoverflow.com/q/1925671/41906 –

13

¿Podría hacerlo sin javascript y simplemente usar etiquetas de anclaje? Entonces sería accesible para esos js libres.

aunque como usas modales, asumo que no te importa ser js libre. ;)

+1

El uso de etiquetas de anclaje interrumpiría la navegación basada en hash. –

24

Si está utilizando el diálogo de la interfaz de usuario de jQuery, puede simplemente modelar el modal para que aparezca con la posición fija en la ventana para que no se salga de la vista, anulando la necesidad de desplazarse. De lo contrario,

var scrollTop = function() { 
    window.scrollTo(0, 0); 
}; 

debería hacer el truco.

1

si está utilizando el cuadro de diálogo de la interfaz de usuario de jQuery, puede simplemente configurar el modal para que aparezca con la posición fija en la ventana para que no se salga de la vista, anulando la necesidad de desplazarse. Otro

0

// When the user scrolls down 20px from the top of the document, show the button 
 
window.onscroll = function() {scrollFunction()}; 
 

 
function scrollFunction() { 
 
    if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) { 
 
     document.getElementById("myBtn").style.display = "block"; 
 
    } else { 
 
     document.getElementById("myBtn").style.display = "none"; 
 
    } 
 
    
 
} 
 

 
// When the user clicks on the button, scroll to the top of the document 
 
function topFunction() { 
 
    
 
    $('html, body').animate({scrollTop:0}, 'slow'); 
 
}
body { 
 
    font-family: Arial, Helvetica, sans-serif; 
 
    font-size: 20px; 
 
} 
 

 
#myBtn { 
 
    display: none; 
 
    position: fixed; 
 
    bottom: 20px; 
 
    right: 30px; 
 
    z-index: 99; 
 
    font-size: 18px; 
 
    border: none; 
 
    outline: none; 
 
    background-color: red; 
 
    color: white; 
 
    cursor: pointer; 
 
    padding: 15px; 
 
    border-radius: 4px; 
 
} 
 

 
#myBtn:hover { 
 
    background-color: #555; 
 
}
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
 

 
<button onclick="topFunction()" id="myBtn" title="Go to top">Top</button> 
 

 
<div style="background-color:black;color:white;padding:30px">Scroll Down</div> 
 
<div style="background-color:lightgrey;padding:30px 30px 2500px">This example demonstrates how to create a "scroll to top" button that becomes visible when the user starts to scroll the page.</div>

Cuestiones relacionadas