Wie lässt man ein div beim Scrollen folgen?

Lesezeit: 3 Minuten

Ich habe ein div auf der linken Seite, das die Geschäftszeiten und das Wetter enthält. Ich möchte, dass dieses div nach unten und oben scrollt, je nachdem, wie der Benutzer scrollt. Es würde also folgen und sich mit der Seite auf und ab bewegen. Wie würde ich das versuchen? Dies ist meine Webseite judystropicalgarden.com

Vielen Dank

  • mögliches Duplikat von How to make div follow scrolling smooth with jQuery?

    – j08691

    9. Juli 2012 um 16:48 Uhr

  • Mit „folgen“ meinst du, dass es buchstäblich Folgen Sie der Maus? Oder dass es einfach auf dem Bildschirm sichtbar bleiben soll, unabhängig vom Scrollen?

    – David Thomas

    9. Juli 2012 um 16:48 Uhr

Benutzer-Avatar
Matthäus Cox

Sie können entweder die CSS-Eigenschaft Fixed verwenden oder, wenn Sie etwas Feinabstimmung benötigen, Javascript verwenden und die Eigenschaft scrollTop verfolgen, die definiert, wo sich die Bildlaufleiste des Benutzeragenten befindet (0 steht oben … und x ist ganz unten)

.Fixed
{
    position: fixed;
    top: 20px;
}

oder mit jQuery:

$('#ParentContainer').scroll(function() { 
    $('#FixedDiv').css('top', $(this).scrollTop());
});

  • Hallo, schöne Lösung. Sehr elegant. Aber was für mich funktioniert hat, war, die Javascript-Version auf unten zu setzen, dh den Scrolltop-Wert auf den unteren Wert des festen div zu setzen.

    – Olarewaju Doyin

    22. August 2017 um 5:58 Uhr

  • Was ist, wenn es für den Zweck der Demo ist absolute und nicht fixiert.

    – Si8

    29. September 2017 um 20:26 Uhr

  • @Si8 Wenn Sie etwas absolut positionieren, wird nicht sichergestellt, dass das Element jederzeit im Ansichtsfenster sichtbar bleibt, wie es die Frage des OP erfordert.

    – Matthäus Cox

    6. Oktober 2017 um 23:21 Uhr

  • Ich kann die jQuery-Lösung nicht zum Laufen bringen. Sehen jsfiddle.net/greyshark7/hf9tmr48/2

    – Paul Chris Jones

    6. Februar 2019 um 20:38 Uhr

  • @PaulJones Das div muss scrollbar sein, damit die Funktion scroll() funktioniert. Du kannst hinzufügen Überlauf: blättern; im css der übergeordneten div.

    – Deepak Daniel

    18. September 2019 um 12:27 Uhr

Der Beitrag ist alt, aber ich habe ein perfektes CSS für diesen Zweck gefunden und möchte es teilen.

Ein Sticky-Element wechselt je nach Bildlaufposition zwischen relativ und fest. Es wird relativ positioniert, bis eine bestimmte Versatzposition im Ansichtsfenster erreicht wird – dann “klebt” es an Ort und Stelle (wie position:fixed).

    div.sticky {
        position: -webkit-sticky; /* Safari */
        position: sticky;
        top: 0;
        background-color: green;
        border: 2px solid #4CAF50;
    }

Quelle: https://www.w3schools.com/css/css_positioning.asp

  • Ja! Dieser moderne Ansatz ersetzt in den meisten Fällen die anderen Lösungen.

    – Ben Ritter

    28. Januar 2020 um 17:29 Uhr

  • tolle und hilfreiche Antwort – sollte da jetzt aktuell akzeptiert werden

    – jpw

    4. April 2020 um 0:53 Uhr

  • Danke, genau danach hatte ich gesucht

    – Cäsar

    17. Juni 2020 um 15:52 Uhr

  • Schön – funktioniert perfekt für mich

    – Chris Cullen

    22. Februar um 12:57 Uhr

  • danke das ist super

    – Vivien SA’A

    21. März um 16:32 Uhr

Mithilfe von CSS-Stilen können Sie definieren, wie etwas positioniert wird. Wenn Sie das Element als definieren Festbleibt es immer an der gleichen Position auf dem Bildschirm.

div
{
    position:fixed;
    top:20px;
}

Benutzer-Avatar
Supertron

Du kannst den … benutzen fixed CSS-Positionseigenschaft, um dies zu erreichen. Dazu gibt es ein Basis-Tutorial hier.

BEARBEITEN: Dieser Ansatz wird jedoch NICHT in IE-Versionen < IE7 unterstützt, und nur in IE7, wenn es sich im Standardmodus befindet. Dies wird hier etwas ausführlicher besprochen.

Es gibt auch einen Hack, erklärt hier, das zeigt, wie man eine feste Positionierung in IE6 erreicht, ohne die absolute Positionierung zu beeinträchtigen. Auf welche Version von IE zielen Sie mit Ihrer Website ab?

Eine bessere JQuery-Antwort wäre:

$('#ParentContainer').scroll(function() { 
    $('#FixedDiv').animate({top:$(this).scrollTop()});
});

Sie können auch eine Zahl nach scrollTop hinzufügen, dh .scrollTop() + 5, um es zu stärken.

Ein guter Vorschlag wäre auch, die Dauer auf 100 zu begrenzen und vom Standardschwung zu einer linearen Lockerung überzugehen.

$('#ParentContainer').scroll(function() { 
    $('#FixedDiv').animate({top:$(this).scrollTop()},100,"linear");
})

Benutzer-Avatar
DroidDEXTER

das Position:fest; Eigentum sollte die Arbeit erledigen, ich habe es auf meiner Website verwendet und es hat gut funktioniert.
http://www.w3schools.com/css/css_positioning.asp

Verwenden Sie einfach einen Hintergrundanhang und stellen Sie ihn so ein, dass er in Ihrem CSS scrollt.

so was:

background-attachment: scroll;

1299710cookie-checkWie lässt man ein div beim Scrollen folgen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy