Ich habe ein div, das eine große Anzahl von Elementen enthält. Ich wähle diese Elemente dynamisch aus, indem ich auf eine Schaltfläche klicke. In meinem Fall ist der Überlauf automatisch. Was ich will, ist, wenn ein Element, das nicht sichtbar ist, ausgewählt ist, um das div so zu scrollen, dass es sichtbar sein kann. Wie kann ich das machen?DIV auto scroll
Antwort
können Sie verwenden, um die scrollTop Eigenschaft von Htmlelement, den Betrag zu setzen ihren Inhalt durch gescrollt wird.
Und Sie können die Menge, die Sie zum Scrollen von offsetTop des Elements, das Sie scrollen möchten, erhalten.
Zum Beispiel mit diesem HTML:
<div id="container">
<p id="item-1">foo</p>
<p id="item-2">bar</p>
<p id="item-3">baz</p>
</div>
Sie dieses JavaScript verwenden könnte den Container Div dritten Absatz blättern:
document.getElementById("container").scrollTop = document.getElementById("item-3").offsetTop;
Wenn Sie auf die Schaltfläche klicken und ein Element ausgewählt haben, rufen Sie die Methode focus() des ausgewählten Elements auf. dies wird Autoscroll zu Ihrem Elemente verursacht:
<div style="height:80px; overflow:auto;">
<input type="text" id="id1"><br><br>
<input type="text" id="id2"><br><br>
<input type="text" id="id3"><br><br>
<input type="text" id="id4"><br><br>
<input type="text" id="id5"><br><br>
<input type="text" id="id6"><br><br>
</div>
<input type="button" onclick="document.getElementById('id6').focus();">
Dies scheint nicht für die regelmäßig "div" -Elemente zu arbeiten (Zumindest nicht in Safari 4 oder Firefox 3). –
Ich versuche nicht für Safari, aber Firefox 3 funktioniert perfekt. – Canavar
Der Code, den Sie dort geschrieben haben, funktioniert perfekt. Wenn Sie jedoch die "Eingabe" -Elemente durch "div" -Elemente ersetzen, scheint die Fokussierung des div-Elements nicht darauf zu scrollen. Ein Beispiel finden Sie unter http://cloud.quintusquill.com/dropbox/ScrollTest.html. –
Sie können auch die Eigenschaft scrollTop oder scrollLeft des DIV verwenden (abhängig davon, ob die Bildlaufleiste horizontal oder vertikal ist).
Ich habe dies bereits getan und nutzte ein setTimeout-Ereignis, um es fließend zu scrollen, anstatt in 1 Bewegung. Dies ist ohne JQuery tho.
Noch eine weitere Option ... Anker.
zuordnen jedes Element eine eindeutige Kennung, und wenn Sie möchten, ein bestimmtes Element blättern, führen Sie den folgenden JavaScript-Code:
location.hash = itemID;
... wo itemID
eine Variable ist, die die ID des Elements enthält Sie möchten zu scrollen.
Steve
- 1. auto scroll horizontaler Linksprung
- 2. auto width & overflow div
- 3. Auto-Scroll-Textfeld in iframe
- 4. Flash - Auto-Scroll-Text Bereiche
- 5. jQueryUI Auto Scroll auf Drag
- 6. jQuery Prepend - Auto-Scroll zu verhindern
- 7. Überlauf: Auto und DIV Problem
- 8. Erweitern div zu scroll Höhe
- 9. Div width: auto und IE
- 10. Feste div auf Scroll
- 11. Detect div scroll jquery
- 12. Scroll interne DIV
- 13. Div 100% Höhe Scroll
- 14. Jquery auto refresh div
- 15. Infinite Auto Scroll Listview mit Bildlaufgeschw Controlled
- 16. Listview mit editiertext - auto scroll auf "nächste"
- 17. Auto scroll unten auf der Seite UIWebView
- 18. Feste div mit Körper Scroll
- 19. div Opazität auf Scroll-Top
- 20. Smooth-Div-Scroll und iPad
- 21. Scroll nach oben von div
- 22. Scroll ein bestimmtes Div-Tag
- 23. Overflow Scroll css funktioniert nicht im div
- 24. css/jquery scroll-fixed div Ausgaben
- 25. Kind div Höhe 100% Innenposition: fixed div + Überlauf auto
- 26. Howto Scroll einen Kontext flex div
- 27. CSS max-height und Überlauf Auto zeigen immer vertikale Scroll
- 28. Sticky Element in einem Div mit absoluter Position auf Scroll
- 29. jQuery Position DIV oben auf Scroll fixiert
- 30. Zeigen/verstecken div auf Fenster scroll
Es ist ein Tippfehler auf js document.getElementById ("Container"). ScrollTop –
Danke Fatih. Fest. –