Problem mit ausführen von JS nach Reload

  • Betroffene Version
    WoltLab Suite 5.4

    Aaaalsoooo.

    Ich habe es mir zur Aufgabe gemacht ein wenig an meinem pageHeaderPanel rumzuwerkeln. Im Zuge dessen habe ich dieses beim scrollen sticky gemacht (funktioniert auch soweit). Damit das funktioniert führe ich etwas JavaScript aus:

    So. Ist so im Footer-Code unter Konfiguration > Allgemein > Seite eingefügt.

    Funktioniert prinzipiell auch.

    Nur sobald ich die Seite neu lade, ist es weg bis ich einmal scrolle.

    Wie krieg ich das denn nu hin, dass das automatisch auch nach dem F5 wieder geht? Falls ichs dumm beschrieben hab hier noch mal in Bildern. Hoffentlich verständlicher ^^

    Spoiler anzeigen


    (Wenn ich scrolle)

    (Wenn ich neu lade und nicht scrolle)

    Ich hoffe mal, dass mir hier jemand helfen kann. Ich habe auch bestimmt schon ne halbe Ewigkeit nach was gesucht, aber entweder falsch gesucht oder sonst was, auf jeden Fall habe ich nichts gefunden.

    Vielleicht weiß da jemand von euch weiter wie ich das hinbekomme ^^

    Danke und mfg.

    „Es gibt tausend Krankheiten, aber nur eine Gesundheit.“ - Ludwig Börne

  • Zur hilfreichsten Antwort springen
    • Offizieller Beitrag

    Inklusive JavaScript aus diesem Jahrhundert ;)

  • Inklusive JavaScript aus diesem Jahrhundert ;)

    Ja, meine Erfahrung und Kenntnisse JavaScript sind nicht so das Gelbe vom Ei - das ist ganz ehrlich nicht meine Stärke.

    Jetzt gibt es nur ein "neues" Problem. Jetzt aktualisiert er die Höhe des .dropdownMenuContainer nicht mehr.

    Weiter oben wird es ausgeführt

    An der Stelle an der ich es brauchen würde aber leider nicht mehr.

    Dazu eine Idee?

    „Es gibt tausend Krankheiten, aber nur eine Gesundheit.“ - Ludwig Börne

  • Ohne zu wissen, was .changepos macht, lässt sich das nicht beantworten.

    CSS
    .dropdownMenuContainer.changepos .interactiveDropdown,
    .pageHeaderSearch.changepos {
      top: 50px !important;
      position: fixed !important;
    }

    Verschiebt mir nur die "Popups"

    „Es gibt tausend Krankheiten, aber nur eine Gesundheit.“ - Ludwig Börne

    • Offizieller Beitrag

    Ach stimmt ja, das Element kann mehrfach auftreten. Dann bitte so:

  • Hmm. Also jetzt bekommen beide .dropdownMenuContainer die Klasse. Der zweite (das Problemkind aus meiner letzten Nachricht) tatsächlich aber weiterhin erst, sobald einmal gescrollt wurde. Wenn ich ihn anklicke ohne zu scrollen aktualisiert er die Klasse gar nicht. Erst sobald ich auch nur minimal gescrollt habe, wird er aktualisiert bzw. scheint dann erst die Abfrage nach der Scroll-weite zu machen.

    Gibt es diesbezüglich eine Idee?

    Spoiler anzeigen


    Wenn ich neu lade und nicht scrolle

    Und sobald ich scrolle ist der gewünschte Effekt gegeben

    „Es gibt tausend Krankheiten, aber nur eine Gesundheit.“ - Ludwig Börne

    • Hilfreichste Antwort
    • Offizieller Beitrag

    Existiert das andere Element überhaupt zu diesem Zeitpunkt und wird nicht erst zur Laufzeit erzeugt?

    Davon ab wäre es wahrscheinlich sinnvoller, eine CSS-Klasse auf das <body>-Element zu setzen:

    CSS
    body.myStickyHeader .dropdownMenuContainer .interactiveDropdown,
    body.myStickyHeader .pageHeaderSearch {
      top: 50px !important;
      position: fixed !important;
    }
  • Vielen Dank für den Input!

    Folgendes benutze ich jetzt bei mir komplett meinem Wunsch entsprechend:

    Vielen Dank für die schnelle Hilfe! :P

    „Es gibt tausend Krankheiten, aber nur eine Gesundheit.“ - Ludwig Börne

  • Hypax 13. August 2021 um 14:32

    Hat einen Beitrag als hilfreichste Antwort ausgewählt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!