1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. Horstmann

Beiträge von Horstmann

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 5. Juli 2025 um 11:57
    Zitat von Mira_Belle

    Mh. :/

    Also, ich habe keine Probleme mehr!

    Es funktioniert super mit Version #2!

    Wir schreiben aber hier ja Code für möglichst alle User und Fälle. ;)
    Für mich klappt #2 nicht sauber, käme also nicht in mein Script.

    So, hier mal was zum Testen für Windozer und alle anderen; löst bei mir am Mac das Animationsproblem beim Lesezeichen-Menü-Button, und schmalem Popup.
    Menüleiste -> Lesezeichen müsstet ihr mal selber testen.

    JavaScript
            let bmbMenu = document.getElementById('bookmarks-menu-button');
            let bookMenu = document.getElementById('bookmarksMenu');
            let persToolBar = document.getElementById('PersonalToolbar');
    
            let bmbMenuPop = document.getElementById('BMB_bookmarksPopup');      // neu
    
            if(bmbMenu){
               bmbMenu.addEventListener('popupshown', onPopupShowing );    // popupshowing => popupshown
               bmbMenuPop.addEventListener('popupshowing', onPopupShowing );  // neu
               }
    
            if(bookMenu)
               bookMenu.addEventListener('popupshown', onPopupShowing );    // popupshowing => popupshown
    
            if(persToolBar)
                persToolBar.addEventListener('popupshowing', onPopupShowing );
    Alles anzeigen

    Oder so:

    JavaScript
            let bmbMenu = document.getElementById('bookmarks-menu-button');
            let bookMenu = document.getElementById('bookmarksMenu');
            let persToolBar = document.getElementById('PersonalToolbar');
    
            let bmbMenuPop = document.getElementById('BMB_bookmarksPopup');      // neu
            
            if(bmbMenu)
               bmbMenu.addEventListener('popupshown', onPopupShowing );    // popupshowing => popupshown
    
            if(bmbMenuPop)
               bmbMenuPop.addEventListener('popupshowing', onPopupShowing );   //  neu
    
            if(bookMenu)
               bookMenu.addEventListener('popupshown', onPopupShowing );    // popupshowing => popupshown
    
            if(persToolBar)
                persToolBar.addEventListener('popupshowing', onPopupShowing );
    Alles anzeigen
  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 5. Juli 2025 um 09:49
    Zitat von BrokenHeart
    Zitat von Mira_Belle

    Dieser komische doppelte Aufruf ist bei mir nicht nötig,
    aber auch so funktioniert es.

    Interessant. Muss mal schauen, ob nur bei mir dieser merkwürdige Effekt auftritt. Vielleicht mal ohne meine 'userChrome.css' testen :/.


    Zitat von Mira_Belle

    Das "Event" auszulösen, bevor und nachdem das Popup-Menü vollständig angezeigt wird,
    macht meiner Meinung keinen Sinn.

    Und BrokenHart hat hier ja recht gut erklärt, warum das "Event" erst nach dem vollständigen Anzeigen
    des Menüs ausgelöst werden sollte.

    Zitat von BrokenHeart

    In beiden FF-Versionen gibt es ein Attribut hasbeenopened des Menü-Popups, welches gesetzt wird, wenn man erstmalig das Popup aufgerufen hat. Deshalb muss hier ein zweites mal der Button betätigt werde, damit das Skript, so wie es jetzt ist, funktioniert.

    Da es hier um Millisekunden geht, so denke ich, sieht man das mit der Verzögerung nicht.
    Man bekommt es einfach nicht mit.

    Hier am Mac, für den #bookmarks-menu-button / Lesezeichen-Menü-Button:

    Die Breite des Haupt-Popups ändert sich jeweils beim ersten Öffnen nach Neustart oder in einem neuen Fenster (falls das Popup noch nicht die erlaubte max-width des Fensters besitzt).

    Edit: hat dieses Popup schon die Maximalbreite bevor die Zählereinträge beim Öffnen dazugefügt werden, etwa durch einen sehr langen Link oder Foldernamen (Anhang), gibt es hier kein Problem wie in #2 (s. unten), weil die Zählereinträge die Breite eh nicht mehr ändern können.

    Danach, und für Submenus bleibt die Grösse, vermutlich weil sie mit hasbeenopened festgelegt bleibt; das Attribut sitzt hier am Hauptpopup, ID: #BMB_bookmarksToolbarPopup.

    ===>

    JavaScript
    let bmbMenu = document.getElementById('bookmarks-menu-button');
    
    //#1 alt: Passt Popup Breite sauber an beim Oeffnen 
    if(bmbMenu)
        bmbMenu.addEventListener('popupshowing', onPopupShowing );
    
    //#2 neu: Passt Popup Breite ruckartig an beim/nach Oeffnen 
    if(bmbMenu)
        bmbMenu.addEventListener('popupshown', onPopupShowing );  // popupshowing => popupshown
    
    //#3 neu, doppelt: Passt Popup Breite sauber an beim Oeffnen 
    if(bmbMenu) {
         bmbMenu.addEventListener('popupshowing', onPopupShowing );   // popupshowing => popupshown
         bmbMenu.addEventListener('popupshown', onPopupShowing );   // popupshowing => popupshown
         }
    Alles anzeigen

    Hat man noch weitere CSS für Positionierung, Grösse etc. für dieses Hauptpopup, könnte das weitere Anzeigeprobleme mit sich bringen, wie von Brokenheart beschrieben.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 4. Juli 2025 um 22:56
    Zitat von BrokenHeart
    Zitat von Horstmann

    Und wenn du beide hinzufügst?

    Ich vermute mal du meinst:

    PS: Ich glaube zwar, dass es nicht sehr effizient ist, das gleiche Prozedere mehrfach aufzurufen, aber dann muss man halt als "Heimwerker und Bastler" mehr Geld für die entsprechende Hardware hinlegen, dann gleicht sich das wieder aus! ;)

    Ooups, sorry, ja, genau das. ;)
    Was Schlaueres fällt mir nicht ein - schon gar nicht ohne es testen zu können, sogar wenn ich JS könnte. :/

    PS; Braucht man die Änderung eigentlich unbedingt für den bookmarks-menu-button, weil sie evtl. in der Lesezeichenleiste mitbenutzt wird?

    Das hier reicht nicht, mit Anpassung nur für bookmarksMenu?

    JavaScript
           let bmbMenu = document.getElementById('bookmarks-menu-button');
           let bookMenu = document.getElementById('bookmarksMenu');
           let persToolBar = document.getElementById('PersonalToolbar');
           
           if(bmbMenu) {
               bmbMenu.addEventListener('popupshowing', onPopupShowing );
           if(bookMenu)
               bookMenu.addEventListener('popupshown', onPopupShowing ); // popupshowing => popupshown
           if(persToolBar)
               persToolBar.addEventListener('popupshowing', onPopupShowing );
       }
    Alles anzeigen
  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 4. Juli 2025 um 21:53
    Zitat von BrokenHeart

    Test-Skript:

    Beim Lesezeichen-Menü über die Menüleiste sieht es erst mal ganz gut aus...

    Beim Öffnen des Popups über den Lesezeichen-Menü-Button funktioniert es zwar auch, aber das Popup wird erst ganz kurz nach links geöffnet und wieder geschlossen, bevor es dann nach rechts wieder geöffnet wird :/.

    Und wenn du beide hinzufügst?

    JavaScript
            if(bmbMenu)
               bmbMenu.addEventListener('popupshowing', onPopupShowing );
               bmbMenu.addEventListener('popupshown', onPopupShowing );
  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 4. Juli 2025 um 21:39

    Hauptsache ich hab nicht mal wieder was vergeigt! ^^

    Prima Fund wieder mal von BrokenHeart. :thumbup:

  • Suche Lösung per CSS oder JS damit sich die Menüs "soft" öffnen.

    • Horstmann
    • 4. Juli 2025 um 17:14
    Zitat von saobento

    Bei mir hat die Änderung nicht geholfen, ist allerdings in einem Linuxsystem, vielleicht macht das dann einen Unterschied.

    Hmm, du könntest das hier noch probieren, als Ersatz für den relevanten Codeteil.

    CSS
    panel:not(#PopupSearchAutoComplete) {
        opacity: 0 !important;
        transform: translateY(-100%) !important;
    }
    
    panel:not(#PopupSearchAutoComplete)[panelopen] {
        --panelui-subview-transition-duration: 2s !important;
        opacity: 1 !important;
        transform: translateY(0) !important;
        transition: transform 0.9s ease-in-out, opacity 0.9s ease-in-out !important;
    }
    Alles anzeigen
  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 4. Juli 2025 um 16:59
    Zitat von Mira_Belle

    Ist auch mit diesem Skript so.

    Danke! :)
    Sind ja ziemlich verschiedene Ansätze, mit dem gleichen Problem, die Frage wäre dann halt wann ist das Problem aufgetreten, oder war es immer schon da?:/
    Wobei dann hätte sich bestimmt schon jemand gemeldet.

    Also, ich kann ja leider nicht die Menüleiste testen, und für mich am Mac konnte sich auch der Bug nie bemerkbar machen.

    Es würde evtl. Sinn machen für Windows User nach einer älteren Version zu suchen, die funktioniert, und dann mit neusten Versionen zu vergleichen, um festzustellen an welchem Punkt der Ärger losging.

    Im Fx Code sehen die IDs etc. ziemlich ähnlich aus, aber die ersten 3 werden offensichtlich anders geladen als die Lesezeichenordner darunter; könnt ja mal die Trennlinie dazwischen rausschmeissen zum Spass. ;)

    Hier ungefähr geht die Diskussion mit den relativ aktuellen Änderungen los, da gibt es Einiges an Code von BrokenHeart , grisu2099 und Mira_Belle , der evtl. die Problematik nicht aufweist. :/

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 4. Juli 2025 um 16:13
    Zitat von grisu2099
    Zitat von Horstmann

    Und wenn ihr jetzt noch kurz das Script von Mitleser hier testen könntet

    Das gleiche in grün...

    Meine Skript-Version:

    Vielen Dank! :)

    Hmm; was mir gerade aufgefallen ist, in meinen letzten Scripts gibt's einen Fehler - der aber bei dir, Mitleser und Mira nicht vorhanden ist, also uU nichts ausmacht.
    Sitzt aber an genau der relevanten Stelle.

    Zeilen 286/287, in meinem Script, und dadurch auch auf Endor's Github:

    Code
            if(bookMenu)-
                bookMenu.addEventListener('popupshowing', onPopupShowing );

    Das - nach if(bookMenu)- muss raus... ==> if(bookMenu) ...

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 4. Juli 2025 um 15:36
    Zitat von grisu2099

    Bei mir wird zuerst immer nur bei der Lesezeichen-Symbolleiste die Daten angezeigt. Erst beim zweiten Mal werden die Daten für die weiteren Zeilen angezeigt. Heißt, ich muß das Popup ein zweites Mal öffnen, bevor bei den Ordnern die Daten angezeigt werden.

    Danke; und wir reden nur über die Menüleiste, korrekt?
    Könnste mal bitte deinen Code einstellen?

    Zitat von Mira_Belle
    Zitat von Horstmann

    ... oder beschreiben welche 3 Einträge zuerst geladen werden?

    Und die Counter ab dem zweiten Separator werden erst beim zweiten Mal öffnen angezeigt.
    Schon seltsam.

    Danke auch; das sind 2 separate Bereiche, das Script scheint den 2ten nicht schnell genug zu erreichen. :/

    Und wenn ihr jetzt noch kurz das Script von Mitleser hier testen könntet - Icons sind erstmal egal - gibt es da auch das Problem?
    Damit könnte man das eingrenzen; wie gesagt, ich kann's am Mac nicht testen. :|

    Gab's das Problem schon immer, oder schwer zu sagen?

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 4. Juli 2025 um 13:53
    Zitat von grisu2099
    Zitat von Horstmann

    junger Mann,

    Das werte ich jetzt mal als Kompliment... :D:D

    Absolut! ^^

    Aber sag mal, hast du das Problem auch, du hast ja glaub ich deine eigene Codeversion?
    Also teilweise starke Verzögerung/Fehlfunktion beim Laden dieser Einträge in Menüleiste -> Lesezeichen Schaltfläche?

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 4. Juli 2025 um 13:29
    Zitat von grisu2099
    Zitat von Horstmann

    welche 3 Einträge zuerst geladen werden?

    Immer die obersten... ;)

    Mac hier, junger Mann, Mac! ;)
    Das Popup sieht in Windows anders aus, andere Inhalte.

  • Suche Lösung per CSS oder JS damit sich die Menüs "soft" öffnen.

    • Horstmann
    • 4. Juli 2025 um 13:00
    Zitat von Endor

    Ja so funktioniert es hier einwandfrei.

    Danke ! :)
    Keine saubere Lösung, aber die einfachste.
    Nur nochmal: speziell die panel Codeteile sind schwer zu kontrollieren und offensichtlich nicht durchgetestet, und das Ganze ist nur ein Test!
    Als nächstes kommt noch Einer und will die Suchergebnisse Popups auch umanimiert haben, etc.., ... ;)

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 4. Juli 2025 um 12:55
    Zitat von Endor

    Es tritt hier nur bei Schaltfläche Lesezeichen in der Menüleiste auf.
    Wenn ich warte werden die fehlenden später nachgeladen.
    Mfg.
    Endor

    Danke; Menüleiste ist hier am Mac nicht testbar, da fällt mir leider nichts zu ein.

    Das um teils Sekunden verspätete Auftauchen hatte ich in einigen wenigen Fällen in alten Versionen, aber dann waren alle Einträge betroffen.

    Erstmal bin ich aber beruhigt; wenn es in der Lesezeichenleiste und der Schaltfläche Lesezeichenmenü normal funktioniert, ist wohl kein generelles Problem da. :)

    Falls du das aktuellste Script benutzt, und die Verblassenfunktion aktiv hast, probier mal let bm_opacity_null = 0;, und/oder let trenner = 1; oder let trenner = 3; zu setzen, und schauen ob es besser ist.

    Und könntest du bitte einen Screenshot vom Menüleisten Popup machen, und zeigen oder beschreiben welche 3 Einträge zuerst geladen werden? Ich hätte da einen Verdacht.:/

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 4. Juli 2025 um 10:59
    Zitat von Endor

    Hallo Mira_Belle .
    Ich kann das Verhalten bestätigen.
    Verhält sich hier genau so wie von Dir beschrieben.
    Mfg.
    Endor

    Hmm, ich habe diverse Varianten bei mir getestet, auch das von Mira, keine Probleme. :/

    Wenn du mal das vorhergegangene Script von #492 probierst, gibt es das gleiche Problem, dass erst beim zweiten Laden alle Anzeigen sichtbar sind?
    Obwohl dir das bestimmt schnell aufgefallen wäre.

    Eins könntet ihr noch testen, wenn das Problem auftritt: das Popup mit nur 3 Einträgen offenlassen für ein paar Sekunden, schauen ob der Rest lädt.

  • Suche Lösung per CSS oder JS damit sich die Menüs "soft" öffnen.

    • Horstmann
    • 4. Juli 2025 um 10:38
    Zitat von saobento

    Das Script aus #70 funktioniert hier auch, sorgt bei mir aber dafür, dass gespeicherte Suchanfragen nicht mehr aufrufbar sind. Die Suchfelder reagieren nicht mehr auf die Eingabe.

    Danke für die Meldung! :)

    ich habe in #70 das Script grob dafür angepasst, Zeilen 73/74, #PopupSearchAutoComplete ist neu.

  • Suche Lösung per CSS oder JS damit sich die Menüs "soft" öffnen.

    • Horstmann
    • 4. Juli 2025 um 00:34
    Zitat von Mira_Belle

    Stimmt schon, aber ich selber bin an der Stelle "CSS" (wie in #68) und mit dem Skript #43 ausgestiegen.
    Damit sind meine Wünsche umgesetzt.

    Mich interessiert halt auch ob was klappt oder nicht nach dem Aufwand, und wie es optimiert werden kann.
    Daher ist jedes Feedback von Usern immer ein willkommener Beitrag - ich werd den Code selber eh nicht benutzen - aber natürlich nicht obligatorisch..

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 4. Juli 2025 um 00:19
    Zitat von Mira_Belle

    Ist es nur bei mir so, dass beim Öffnen erst einmal nur bei den oberen drei "Einträgen" die "Werte" angezeigt werden
    und erst beim zweiten Mal öffnen, dann bei allen Ordner?

    Kann ich nicht nachvollziehen; kannste mal das Script mit deinen benutzten Einstellungen einstellen, am besten auch noch die Icons?

  • Suche Lösung per CSS oder JS damit sich die Menüs "soft" öffnen.

    • Horstmann
    • 3. Juli 2025 um 23:07
    Zitat von Mira_Belle

    Menüleistenbuttons? Was genau ist damit gemeint?
    Datei ... Bearbeiten ... Ansicht ... Chronik ... Lesezeichen ... Extras ... Hilfe ?
    Hatten wir schon.

    Code
    #file-menu
    #edit-menu
    #view-menu
    #history-menu
    #bookmarksMenu
    #profiles-menu
    #tools-menu
    #helpMenu

    Die Idee war eher das alles zu reduzieren, ohne jeden Button/Schaltfläche einzeln zu listen; Andreas hat inzwischen ja teils schon vorgegriffen. :)

    Grober Testcode, inkl. Grobversuch mit Haupt Popups für Hamburger, Downloadbutton, Extensionbutton, Overflowkram; Menuleiste nicht testbar am Mac, aller anderer älterer Code muss raus:

    JavaScript
    //Popup Position Finder mit Popup Animationen CSS / universal test 2
    //popup_position.uc.js
    
    (function () {
    if (!window.gBrowser) return;
        document.addEventListener("popupshowing", function (e) {
          let popup = e.target;
          if (popup.localName !== "menupopup") return;
    
          let anchor = popup.anchorNode;
          if (!anchor || typeof anchor.screenX === "undefined") return;
    
          let flippedH = popup.screenX < anchor.screenX;
    
          popup.classList.remove('flipper');
             if (flippedH) {
              popup.classList.add('flipper');
              }
        });
    
    const sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
    
    const uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
    
    menu > menupopup {
        --trans_x: -100%;
    }
    menu > menupopup.flipper {
        --trans_x: 100%;
    }
    
    /* --- Hauptmenus --- */
    
    :is(toolbarbutton, menubar > menu) > menupopup {
        opacity: 0 !important;
        transform: translateY(-100%) !important;
    }
    :is(toolbarbutton, menubar > menu)[open] > menupopup {
        opacity: 1 !important;
        transform: translateY(0) !important;
        transition: transform 0.9s ease-in-out, opacity 0.9s ease-in-out !important;
    }
    
    /* --- Untermenus --- */
    
    :is(toolbarbutton, menubar > menu) menu > menupopup {
        opacity: 0 !important;
        transform: translateX(var(--trans_x)) !important;
    }
    :is(toolbarbutton, menubar > menu) menu[open] > menupopup {
        opacity: 1 !important;
        transform: translateX(0) !important;
        transition: transform 0.9s ease-in-out, opacity 0.9s ease-in-out !important;
    }
    
    /* --- Panels test --- */
    
    panel {
        outline: 2px solid red;
        outline-offset: -2px !important;
    }
    
    panel[mainviewshowing] {
        outline: 2px solid cyan;
        outline-offset: -2px !important;
    }
    
    panel {
        opacity: 0 !important;
        transform: translateY(-100%) !important;
    }
    
    panel[panelopen],
    #PopupSearchAutoComplete {
        /*will-change: transform, opacity !important;
        transition-property: transform, opacity !important;
        --animation-easing-function: ease-in-out !important;*/
        --panelui-subview-transition-duration: 2s !important;
        opacity: 1 !important;
        transform: translateY(0) !important;
        transition: transform 0.9s ease-in-out, opacity 0.9s ease-in-out !important;
    }
    
    /*
    panel:not([mainviewshowing]) {
        opacity: 0 !important;
        transform: translateY(-100%) !important;
    }
    panel[panelopen]:not([mainviewshowing])  {
        opacity: 1 !important;
        transform: translateY(0) !important;
        transition: transform 0.9s ease-in-out, opacity 0.9s ease-in-out !important;
    }
    */
    
    
    	`), null, null);
    sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
    
    })();
    Alles anzeigen

    Zitat von BrokenHeart

    Hab jetzt nicht mehr den ganzen Thread mitverfolgt, aber hier mal als Anregung für die Untermenüs im Hamburger-Popup. Dürfte in der Umsetzung einfacher sein, da ja schon von Haus aus eine (wesentlich kürze) Animation vorgesehen ist:

    CSS
    panel#appMenu-popup[type="arrow"]
    {
    	--animation-easing-function: cubic-bezier(0.25, 0.1, 0.25, 1.0) !important;
    	--panelui-subview-transition-duration: 0.66s !important;
    }

    Guter Fund, hilft weiter an der Stelle, und in anderen ähnlichen Untermenus auch. :)
    Von der Art gibt es Unmengen im Fx Code, da hatte ich mich noch nicht rangetraut.

  • Suche Lösung per CSS oder JS damit sich die Menüs "soft" öffnen.

    • Horstmann
    • 3. Juli 2025 um 20:46
    Zitat von Endor

    Obiges Script funktioniert hier in der Menüleiste überhaupt nicht.
    Lesezeichenleiste geht es prima, und auch bei einzelnen Schaltflächen von Scripten.
    .....
    Alles funktioniert. Es fehlen mir nur die Hamburger Schaltfläche- bzw. das Popup
    usw.

    Ahhh, ok, dann vergessen wir das schnell wieder. ;)

    Die Menüleiste Button IDs in Windows könnte jemand rauszufinden, evtl. #menubar-items etc. oder sowas (unmöglich am Mac zu testen) und zu toolbarbutton mit einfügen, aber man kann auch einfach die Liste weiterbenutzen. :whistling:

    Auf die Schnelle würde mir noch sowas einfallen für den Rest, ist aber sehr grob, deckt die Untermenus nicht ab für Hamburger etc., und müsste gründlich getestet werden:

    CSS
    panel {
        opacity: 0 !important;
        transform: translateY(-100%) !important;
    }
    
    panel[panelopen] {
        opacity: 1 !important;
        transform: translateY(0) !important;
        transition: transform 0.9s ease-in-out, opacity 0.9s ease-in-out !important;
    }
  • Suche Lösung per CSS oder JS damit sich die Menüs "soft" öffnen.

    • Horstmann
    • 3. Juli 2025 um 15:21
    Zitat von Endor

    Frage, kann man das Popup der Hamburger Schaltfläche, des #nav-bar-overflow-button,
    der Unifiedextensionsschaltfläche, der Alletabsschaltfläche in der Tableise usw.
    auch damit eventuell ansprechen? Weil dann wäre es komplett.
    Mfg.
    Endor

    Danke für den Upload! :)

    Und ja, man kann das erweitern, und die Frage nach einer universellen Anpassung habe ich befürchtet. ;)

    Ich weiss über die diversen Popups gerade soviel, und habe soviel Zeit damit verbracht die Dinger einzeln umzubauen in der Vergangenheit, dass ich für diesen Zweck lieber die Finger davon lasse.8)
    Ausserdem hab ich das Ganze quasi blind geschrieben - nicht nur auf Mac, sondern auch auf 115esr.^^

    Zum einen müsste man die jeweiligen "Hauptmenu" Popups raussuchen und die Animation anpassen, das deckt eine gewisse Spannbreite an Popupdesigns ab, ist aber machbar und kein Drama mit reinem CSS.
    Die Submenus mit der horizontalen Animation sind erstmal auch nicht so schwierig - aber für die automatische rechts/links Anpassung müsste man auch den Javascript Teil anpassen, und das ganze dann wieder sauber verschachteln im CSS.
    Was die potentiellen Auswirkungen auf andere Popups betrifft, Kontext etc., ist nochmal ein anderes Thema.

    Oder man sucht die existierenden FX Animation mal durch, evtl. kann man die ja überschreiben wo vorhanden - und zugänglich.

    Wenn jemand weiter daran basteln möchte, evtl. kann sowas als mehr generell gefasster Anfang dienen, könnte zumindest für die Basis-Button Popups klappen, und dafür evtl. sogar den ganzen Code von oben ersetzen:

    JavaScript
    //Popup Position Finder mit Popup Animationen CSS / universal test 1
    //popup_position.uc.js
    
    (function () {
    if (!window.gBrowser) return;
        document.addEventListener("popupshowing", function (e) {
          let popup = e.target;
          if (popup.localName !== "menupopup") return;
    
          let anchor = popup.anchorNode;
          if (!anchor || typeof anchor.screenX === "undefined") return;
    
          let flippedH = popup.screenX < anchor.screenX;
    
          popup.classList.remove('flipper');
             if (flippedH) {
              popup.classList.add('flipper');
              }
        });
    
    const sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
    
    const uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
    
    
    menu > menupopup {
        --trans_x: -100%;
    }
    menu > menupopup.flipper {
        --trans_x: 100%;
    }
    
    /* --- Hauptmenus --- */
    toolbarbutton > menupopup {
        opacity: 0 !important;
        transform: translateY(-100%) !important;
    }
    toolbarbutton[open] > menupopup {
        opacity: 1 !important;
        transform: translateY(0) !important;
        transition: transform 0.9s ease-in-out, opacity 0.9s ease-in-out !important;
    }
    
    /* --- Untermenus ---  */
    toolbarbutton menu > menupopup {
        opacity: 0 !important;
        transform: translateX(var(--trans_x)) !important;
        /*margin-top: -7px !important;*/
        /*margin-inline: 16px !important;*/
    }
    toolbarbutton menu[open] > menupopup {
        opacity: 1 !important;
        transform: translateX(0) !important;
        transition: transform 0.9s ease-in-out, opacity 0.9s ease-in-out !important;
    }
    	`), null, null);
    sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
    
    })();
    Alles anzeigen

Unterstütze uns!

Jährlich (2025)

101,9 %

101,9% (662,48 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon