Ich schreibe ein modales Popup und ich brauche den Browser, um an den oberen Rand des Bildschirms zu springen, wenn die modale Schaltfläche zum Öffnen gedrückt wird. Gibt es eine Möglichkeit, den Browser mit jQuery nach oben zu scrollen?
So springen Sie zum Anfang der Browserseite
Ausfahrten
Nick Craver
Sie können die einstellen scrollTop
so was:
$('html,body').scrollTop(0);
Oder wenn Sie eine kleine Animation anstelle eines Schnappschusses nach oben wünschen:
$('html, body').animate({ scrollTop: 0 }, 'fast');
-
gut … Ich habe das scrollTo-Plugin für jQuery zuvor verwendet, um dies zu erreichen – hätte mit Ihrem Code ein bisschen Code sparen können … danke für die Lektion 😉
– Zathrus-Schriftsteller
10. November 2010 um 18:21 Uhr
-
@MikhailBatcer – Deaktiviere dein CSS und schaue dann, ob es funktioniert. Möglicherweise haben Sie ein Problem damit, wie Sie Ihre gestylt haben
html
undbody
Stichworte. sonst verwenden$(window)
stattdessen.– einladen
3. März 2016 um 19:21 Uhr
-
Wie füge ich die Dauer für das Animations-Scrolling hinzu?
– Maxim Strutinsky
6. Dezember 2019 um 15:31 Uhr
Ionuț Staicu
Ohne Animation können Sie einfaches JS verwenden:
scroll(0,0)
Überprüfen Sie mit Animation Nicks Antwort.
-
Wird dies in allen Browsern unterstützt?
– Schrittmacher
27. Mai 2013 um 12:56 Uhr
-
scroll
ist im CSSOM-Standard whilescrollTo
wurde ursprünglich in DOM Level 0 definiert und war nicht Teil eines Standards. CSSOM enthält jedochscrollTo
für Abwärtskompatibilität.– Clint Pachl
14. Mai 2015 um 8:25 Uhr
-
Ich finde
scroll
wird breit unterstützt. Siehe stackoverflow.com/q/1925671/41906– Clint Pachl
14. Mai 2015 um 8:26 Uhr
-
Vielen Dank. ich vermute
window && window.scroll(0,0);
ist in meinem Ansichtsmodell akzeptabel.– nodisch
30. Januar 2017 um 17:35 Uhr
Wenn Sie das jQuery-UI-Dialogfeld verwenden, können Sie das Modal einfach so gestalten, dass es mit der im Fenster festgelegten Position angezeigt wird, damit es nicht aus dem Blickfeld verschwindet und nicht gescrollt werden muss. Andernfalls,
var scrollTop = function() {
window.scrollTo(0, 0);
};
sollte den Trick machen.
Sie könnten auf Javascript verzichten und einfach Anchor-Tags verwenden? Dann wäre es für diese js frei zugänglich.
Obwohl Sie Modale verwenden, nehme ich an, dass es Ihnen egal ist, js-frei zu sein. 😉
Ahmad Moghasi
Vanille Javascript Lösung
theId.onclick = () => window.scrollTo({top: 0})
Wenn Sie reibungsloses Scrollen wünschen
theId.onclick = () => window.scrollTo({ top: 0, behavior: 'smooth' })
Waruna Manjula
// 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>
Josh Powlison
Ich weiß, das ist alt, aber für diejenigen, die Probleme in Edge haben:
Einfaches JS: window.scrollTop=0;
Leider, scroll()
und scrollTo()
Fehler in Edge werfen.