Réponses:
Vous pouvez définir le scrollTop
, comme ceci:
$('html,body').scrollTop(0);
Ou si vous voulez une petite animation au lieu d'un snap vers le haut:
$('html, body').animate({ scrollTop: 0 }, 'fast');
html
et body
. sinon utilisez à la $(window)
place.
Sans animation, vous pouvez utiliser JS brut:
scroll(0,0)
Avec l'animation, vérifiez la réponse de Nick .
scroll
est dans le standard CSSOM alors qu'il scrollTo
était à l'origine défini dans DOM niveau 0 et ne fait partie d'aucun standard. Cependant, CSSOM inclut scrollTo
pour la compatibilité descendante.
scroll
c'est largement soutenu. Voir stackoverflow.com/q/1925671/41906
window && window.scroll(0,0);
c'est acceptable dans mon modèle de vue.
Si vous utilisez la boîte de dialogue jQuery UI, vous pouvez simplement styliser le modal pour qu'il apparaisse avec la position fixée dans la fenêtre afin qu'il ne s'affiche pas hors de la vue, ce qui évite le besoin de faire défiler. Autrement,
var scrollTop = function() {
window.scrollTo(0, 0);
};
devrait faire l'affaire.
Vous pourriez le faire sans javascript et simplement utiliser des balises d'ancrage? Ensuite, il serait accessible à ces js gratuitement.
même si vous utilisez des modaux, je suppose que vous ne vous souciez pas d'être libre de js. ;)
// 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>
Je sais que c'est vieux, mais pour ceux qui ont des problèmes dans Edge:
Plain JS: window.scrollTop=0;
Malheureusement, scroll()
et scrollTo()
jette des erreurs dans Edge.