Ich versuche es so zu gestalten, dass beim Klicken auf eine Schaltfläche (reibungslos) zu einem bestimmten Div auf der Seite gescrollt wird.
Was ich brauche ist, wenn Sie auf die Schaltfläche klicken, wird sanft zur div 'Sekunde' gescrollt.
.first {
width: 100%;
height: 1000px;
background: #ccc;
}
.second {
width: 100%;
height: 1000px;
background: #999;
}
<div class="first"><button type="button">Click Me!</button></div>
<div class="second">Hi</div>
javascript
jquery
Erik Fischer
quelle
quelle
Antworten:
machen:
Jsfiddle aktualisiert
quelle
Es gibt viele Beispiele für reibungsloses Scrollen mit JS-Bibliotheken wie jQuery, Mootools, Prototype usw.
Das folgende Beispiel bezieht sich auf reines JavaScript. Wenn Sie kein jQuery / Mootools / Prototype auf der Seite haben oder die Seite nicht mit umfangreichen JS-Bibliotheken überladen möchten, ist das Beispiel hilfreich.
http://jsfiddle.net/rjSfP/
HTML-Teil:
CSS-Teil:
JS Teil:
quelle
Ich spielte ein wenig mit Nicos Antwort herum und es fühlte sich nervös an. Habe ein bisschen nachgeforscht und herausgefunden,
window.requestAnimationFrame
welche Funktion bei jedem Repaint-Zyklus aufgerufen wird. Dies ermöglicht eine sauberere Animation. Ich versuche immer noch, gute Standardwerte für die Schrittgröße zu verbessern, aber in meinem Beispiel sieht es mit dieser Implementierung ziemlich gut aus.quelle
scrollContainer = scrollContainer.parentNode
null ist. Dies bedeutet wahrscheinlich, dass SieelementId
beim Aufrufen dieser Funktion nicht das Richtige übergeben . Es ist auch möglich, dass Sie dieses Skript auf einer Seite ausführen, auf der diese elementId nicht vorhanden ist.elementId
es falsch gewesen wäre, hätte ich im Fall von @nicos Beispiel den gleichen Fehler erhalten, aber in diesem Fall funktioniert das Scrollen, aber nicht reibungslos.requestAnimationFrame
stattsetTimeout
ist der richtige Weg.setTimeout
sollte nicht für Animationen verwendet werden.Was ist, wenn Sie die Funktion scrollIntoView verwenden?
Hat auch {Verhalten: "glatt"} ....;) https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
quelle
Ich nahm die Version von Ned Rockson und passte sie an, um auch Schriftrollen nach oben zu ermöglichen.
quelle
Sie können einfaches CSS verwenden, um einen reibungslosen Bildlauf zu erzielen
quelle