Ich versuche, die Seite in ein <div>
Element zu verschieben.
Ich habe den nächsten Code ohne Erfolg ausprobiert:
document.getElementById("divFirst").style.visibility = 'visible';
document.getElementById("divFirst").style.display = 'block';
javascript
html
C ..
quelle
quelle
visibility
unddisplay
werden verwendet, um Elemente (in) sichtbar zu machen. Möchten Sie das Div auf dem Bildschirm scrollen?el.scrollIntoView(true)
Antworten:
Sie können einen Anker verwenden, um das Div zu "fokussieren". Dh:
und verwenden Sie dann das folgende Javascript:
quelle
location.href="#";location.href="#myDiv"
. Die Verwendungid="myDiv"
wird der Verwendung vorgezogenname="myDiv"
und funktioniert auch.scrollIntoView funktioniert gut:
Vollständige Referenz in den MDN-Dokumenten:
https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollIntoView
quelle
scrollIntoView
Ihre Frage und die Antworten sehen anders aus. Ich weiß nicht, ob ich mich irre, aber für diejenigen, die googeln und hierher gelangen, wäre meine Antwort folgende:
Meine Antwort erklärte:
Hier ist ein einfaches Javascript dafür
Rufen Sie dies auf, wenn Sie den Bildschirm zu einem Element mit der ID = "yourSpecificElementId" scrollen müssen.
dh. für die obige Frage, wenn die Absicht besteht, den Bildschirm mit der ID 'divFirst' zum div zu scrollen.
Der Code wäre:
window.scroll(0,findPos(document.getElementById("divFirst")));
und Sie benötigen diese Funktion für die Arbeit:
Der Bildschirm wird zu Ihrem spezifischen Element gescrollt.
quelle
window
Sie scrollen möchten, kein überlaufender[curtop]
zucurtop
am Ende(window.screen.height/2)
Sie esFür Chrome und Firefox
Ich habe ein bisschen darüber nachgedacht und herausgefunden, was sich irgendwie wie die natürlichste Art anfühlt, es zu tun. Natürlich ist dies jetzt meine persönliche Lieblingsrolle. :) :)
Für IE-, Edge- und Safari-Unterstützer
Beachten Sie, dass
window.scroll({ ...options })
dies in IE, Edge und Safari nicht unterstützt wird. In diesem Fall ist es höchstwahrscheinlich am besten zu verwendenelement.scrollIntoView()
. (Unterstützt von IE 6). Sie können höchstwahrscheinlich (sprich: ungetestet) Optionen ohne Nebenwirkungen übergeben.Diese können natürlich in eine Funktion eingeschlossen werden, die sich entsprechend dem verwendeten Browser verhält.
quelle
window.scroll
Versuche dies:
z.B @:
quelle
element.tabIndex
aber nicht istelement.tabindex
; Der zweite funktioniert unter Firefox, aber nicht unter Chrome (zumindest als ich es vor einiger Zeit ausprobiert habe). Natürlich wird sowohl als HTML-Attribut als auchtabIndex
alstabindex
Arbeit verwendet (und unter XHTMLtabindex
muss verwendet werden)Um zu einem bestimmten Element zu scrollen, haben Sie unten nur diese JavaScript-Lösung erstellt.
Einfache Verwendung:
Engine-Objekt (Sie können mit Filter- und FPS-Werten herumspielen):
quelle
Hier ist eine Funktion, die einen optionalen Versatz für diese festen Überschriften enthalten kann. Keine externen Bibliotheken erforderlich.
Sie können die Höhe eines Elements mit JQuery erfassen und dorthin scrollen.
Update März 2018
Scrollen Sie zu dieser Antwort, ohne JQuery zu verwenden
quelle
Sie können den Fokus auf Element setzen. Es funktioniert besser als
scrollIntoView
node.setAttribute('tabindex', '-1')
node.focus()
node.removeAttribute('tabindex')
quelle
Die beste, kürzeste Antwort darauf, was auch mit Animationseffekten funktioniert:
Wenn Sie eine feste Navigationsleiste haben, subtrahieren Sie einfach deren Höhe vom oberen Wert. Wenn Ihre feste Balkenhöhe also 70 Pixel beträgt, sieht Zeile 2 folgendermaßen aus:
Erläuterung: Zeile 1 erhält die Elementposition. Zeile 2 scrollt zur Elementposition.
behavior
Eigenschaft fügt einen glatten animierten Effekt hinzuquelle
Der Fokus kann nur auf interaktive Elemente gelegt werden ... Div repräsentiert nur einen logischen Abschnitt der Seite.
Vielleicht können Sie die Ränder um div setzen oder die Farbe ändern, um einen Fokus zu simulieren. Und ja, Sichtbarkeit steht nicht im Mittelpunkt.
quelle
Ich denke, wenn Sie Ihrem Div einen Tabindex hinzufügen, kann er sich konzentrieren:
Ich denke jedoch nicht, dass es gültig ist. Tabindex kann nur auf einen Bereich, eine Schaltfläche, eine Eingabe, ein Objekt, eine Auswahl und einen Textbereich angewendet werden. Aber probieren Sie es aus.
quelle
tabindex
handelt es sich um ein "Kernattribut", bei dem es sich um "globale Attribute" handelt (Attribute, die allen Elementen in der HTML-Sprache gemeinsam sind). Siehe w3.org/TR/2011/WD-html-markup-20110113/global-attributes.htmlÄhnlich wie bei @ caveman's Lösung
quelle
Sie können sich nicht auf ein Div konzentrieren. Sie können sich nur auf ein Eingabeelement in diesem Div konzentrieren. Außerdem müssen Sie element.focus () anstelle von display () verwenden.
quelle
<div>
Fokussierbarkeit festlegen, wenn Sie dastabindex
Attribut verwenden. Siehe dev.w3.org/html5/spec-author-view/editing.html#attr-tabindexNachdem ich mich viel umgesehen habe, hat das endlich für mich funktioniert:
Suchen / lokalisieren Sie div in Ihrem Dom mit Bildlaufleiste. Für mich sah es so aus: "div class =" table_body table_body_div "scroll_top =" 0 "scroll_left =" 0 "style =" width: 1263px; Höhe: 499px; "
Ich habe es mit diesem xpath gefunden: // div [@ class = 'table_body table_body_div']
Verwendete JavaScript, um das Scrollen wie folgt auszuführen: (JavascriptExecutor) Treiber) .executeScript ("Argumente [0] .scrollLeft = Argumente [1];", Element, 2000);
2000 ist die Anzahl der Pixel, die ich nach rechts scrollen wollte. Verwenden Sie scrollTop anstelle von scrollLeft, wenn Sie Ihren Div nach unten scrollen möchten.
Hinweis: Ich habe versucht, scrollIntoView zu verwenden, aber es hat nicht richtig funktioniert, da meine Webseite mehrere Divs hatte. Es funktioniert, wenn Sie nur ein Hauptfenster haben, in dem der Fokus liegt. Dies ist die beste Lösung, die mir begegnet ist, wenn Sie jQuery nicht verwenden möchten, was ich nicht wollte.
quelle
Eine Methode, die ich oft benutze, um einen Container zu seinem Inhalt zu scrollen.
Wenn Sie global überschreiben möchten, können Sie auch Folgendes tun:
quelle
Aufgrund des Verhaltens funktioniert "glatt" in Safari, Safari ios, Explorer nicht. Normalerweise schreibe ich eine einfache Funktion mit requestAnimationFrame
quelle
Wenn Sie HTML verwenden möchten, können Sie Folgendes verwenden:
und machen Sie es zu einem HTML-Link zu der spezifischen Element-ID. Es ist im Grunde
getElementById
HTML-Version.quelle
Probieren Sie diese Funktion aus
Übergeben Sie die Div-ID als Parameter, es wird funktionieren. Ich verwende sie bereits
quelle
$j
?