Problem mit ausführen von JS nach Reload

  • Affected 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 ^^


    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.

    Hypax

  • Go to Best Answer
    • Official Post

    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?

    Hypax

  • 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"

    Hypax

    • Official Post

    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?

    Hypax

    • Best Answer
    • Official Post

    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

    Hypax

  • Hypax

    Selected a post as the best answer.