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. Mira_Belle

Beiträge von Mira_Belle

  • Seitennavigation - Fly Out Menü

    • Mira_Belle
    • 10. Dezember 2025 um 06:28
    Zitat von Horstmann

    Evtl. testen:

    :thumbup: Perfekt:!:

    :* Danke.

  • Seitennavigation - Fly Out Menü

    • Mira_Belle
    • 9. Dezember 2025 um 22:56

    Irgendwie müsste da was mit "#flybox_new" gehen.
    Wenn ausgeblendet, "#flybox_new" => display: none;

    aus #137?
    Äh, das hier:

    JavaScript
    // New switchable toolbar rechts/links – Version mit gleitendem Slide‑In/Out‑Effekt
    
    (function() {
      if (!window.gBrowser)
        return;
    
      const
      // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■    
        id           = 'NewToolbar_fly_button',
        label        = 'Toggle New Toolbar',
        tooltiptext  = 'Toggle New toolbar',
        // Icon-------------------------------------------------------
        icon         = 'Dock Side Right.svg',   // Icon-Dateiname
        iconPath     = '/chrome/icons/',
        tbWidth      = '34px',                  // Sichtbare Leistenbreite
        isPosH       = 0,                       // 0 = rechts, 1 = links
        isPosV       = '30%',                   // vertikale Position der Leiste
      // isPosV      = '0%',       Leiste am oberen Fensterrand;
      // isPosV      = '50%',      Leiste mittig zur Fensterhöhe;
    	// isPosV      = '100%',     Leiste am unteren Fensterrand;
         delay       = '0.6s';                  // Dauer (schneller/langsamer)
      // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    
      const curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir));
    
      if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
        Services.prefs.setBoolPref('svg.context-properties.content.enabled', true);
      }
    
      const flybox_new = document.createXULElement('toolbox');
      flybox_new.setAttribute('orient','horizontal');
      flybox_new.id = 'flybox_new';
    
      const toolbar = document.createXULElement('toolbar');
      toolbar.id = 'new_flybar';
      toolbar.setAttribute('orient', 'vertical');
      toolbar.setAttribute('customizable', true);
      toolbar.setAttribute('mode', 'icons');
      toolbar.setAttribute('context', 'toolbar-context-menu');
      toolbar.setAttribute('class','toolbar-primary chromeclass-toolbar browser-toolbar customization-target');
      toolbar.setAttribute('toolboxid', 'navigator-toolbox');
      toolbar.setAttribute('toolbarname', 'New Toolbar');
      toolbar.setAttribute('label', 'New Toolbar');
    
      let savedState = false;
      try {
        savedState = Services.prefs.getBoolPref("userChrome.newFlybar.off");
      } catch(e) {}
    
      if (savedState) toolbar.classList.add("fly_off_mode");
    
      flybox_new.appendChild(toolbar);
      document.getElementById('browser').parentNode.appendChild(flybox_new);
    
      CustomizableUI.registerArea(toolbar.id, {legacy: true});
      CustomizableUI.registerToolbarNode(toolbar);
    
      try {
        CustomizableUI.createWidget({
          id,
          defaultArea: CustomizableUI.AREA_NAVBAR,
          label,
          tooltiptext,
          onCreated: (button) => {
            button.style.MozContextProperties = 'fill, stroke, fill-opacity';
            button.style.listStyleImage = 'url("' + curProfDir + iconPath + icon + '")';
            button.style.minWidth = 'fit-content';
          }
        });
      } catch(e) {};
    
      document.getElementById('NewToolbar_fly_button').addEventListener("click", flybar);
      
      function flybar(event) {
        if (event.button === 0) {
          const new_flybar = document.getElementById('new_flybar');
          new_flybar.classList.toggle("fly_off_mode");
          const state = new_flybar.classList.contains("fly_off_mode");
          Services.prefs.setBoolPref("userChrome.newFlybar.off", state);
        }
      }
      
      if (isPosH === 1)
        flybox_new.classList.add("fly_left");
      else
        flybox_new.classList.remove("fly_left");
    
      const css = `
        :root {
          --ug-toolbar_width: ${tbWidth};
          --ug-bg_color: #2b2b2b;
          --ug-border_width: 3px;
          --ug-border_radius: 8px;
          --ug-border_color: #f3a200;
        }
    
        #flybox_new {
          position: fixed !important;
          display: flex !important;
          ${isPosH === 0
            ? `right: 0 !important; margin-right: calc(-1 * var(--ug-border_width));`
            : `left: 0 !important; margin-left: calc(-1 * var(--ug-border_width));`}
          top: ${isPosV} !important;
          transform: translateY(-${isPosV}) !important;
          height: fit-content !important;
          z-index: 2 !important;
        }
    
        #new_flybar {
          display: flex;
          width: calc(var(--ug-toolbar_width) + 2*var(--ug-border_width));
          min-width: 0 !important;
          overflow: hidden !important;
          justify-content: center !important;
          padding-block: 4px;
          background-color: var(--ug-bg_color) !important;
          border: var(--ug-border_width) solid var(--ug-border_color) !important;
          ${isPosH === 0
            ? `border-radius: var(--ug-border_radius) 0 0 var(--ug-border_radius);`
            : `border-radius: 0 var(--ug-border_radius) var(--ug-border_radius) 0;`}
          transition: transform ${delay} ease-in-out,
                      opacity ${delay} ease-in-out,
                      border-width ${delay} ease-in-out;
          transform: translateX(0);
          opacity: 1;
        }
    
        #new_flybar.fly_off_mode {
          transform: ${isPosH === 0 ? 'translateX(100%)' : 'translateX(-100%)'};
          opacity: 0;
          border-width: 0 !important;
          pointer-events: none;
        }
    
        #new_flybar > :is(.toolbarbutton-1, toolbaritem),
        #new_flybar toolbarpaletteitem > :is(.toolbarbutton-1, toolbaritem) {
          margin-inline: 0px !important;
          margin-block: 2px !important;
          padding: 0px !important;
        /*  opacity: 1 !important;  */
          transition: none;
        }
    
        /*---  customizing  ---*/
    
        #main-window[customizing]  #flybox_new.fly_left {
          left: unset !important;
          right: 0px !important;
          margin-inline: 0px calc(-1 * var(--ug-fly_border_width)) !important;
        }
    
        #new_flybar[customizing] {
          align-items: center !important;
          width: calc(var(--ug-toolbar_width) + var(--ug-fly_border_width)) !important;
          min-height: var(--ug-toolbar_width) !important;
          padding-bottom: 48px !important;
          border-radius: var(--ug-border_radius) 0 0 var(--ug-border_radius) !important;
          transition: none !important;
        }
    
        #main-window:not([customizing]) #new_flybar.fly_off_mode[customizing] {
          transition: none !important;
          opacity: 0 !important;
        }
    
        #customization-content-container {
          margin-right: var(--ug-toolbar_width) !important;
        }
    
      `;
    
      const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
      const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css));
      sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
    
    })();
    Alles anzeigen
  • Seitennavigation - Fly Out Menü

    • Mira_Belle
    • 9. Dezember 2025 um 22:47

    @Horstmann Habe ich auch schon gemacht, ändert aber nichts.

  • [FFX 145.x] Doppelklick (linke Maustaste) auf die Tableiste neuen Tab öffnen?

    • Mira_Belle
    • 9. Dezember 2025 um 22:07
    Zitat von 2002Andreas

    Nur bei aktivierter Titelleiste öffnet sich ein neuer Tab nach Doppelklick auf die Tableiste.

    =O
    Da muss man erst einmal drauf kommen.

    Danke.

  • Seitennavigation - Fly Out Menü

    • Mira_Belle
    • 9. Dezember 2025 um 22:04

    Eine nicht ganz so schöne Sache habe ich aber nun entdeckt!
    Der Bereich, der von der Toolbar überdeckt wird, wird auch im ausgeblendeten Zustand "überdeckt"!
    Was bedeutet, dass an dieser Stelle der Slider der Scrollbar nicht "angefasst" werden kann.

    Ich prüfe mal, ob das mit Mitlesers Toolbar auch so ist.

    Nein, ist nicht so.
    Es hat ganz sicher etwas mit dem sanften ein und ausblenden zu tun.
    Denn Mitlesers Toolbar "ploppt" auf.
    Kann ich in meinem Skript nachvollziehen.

    Mir fällt das aber z.Z. nichts Passendes ein.

  • [FFX 145.x] Doppelklick (linke Maustaste) auf die Tableiste neuen Tab öffnen?

    • Mira_Belle
    • 9. Dezember 2025 um 21:57
    Zitat von BrokenHeart

    Bei mir (Win10) öffnet sich im Fehlerbehebungsmodus kein neuer Tab, sondern das Firefox-Fenster ändert seinen Status von maximiert auf verkleinert und umgekehrt. Das ist das Standardverhalten...

    Merkwürdig, habe ich nun auch gemacht, nur um es nachvollziehen zu können,
    und was soll ich sagen? Bei mir, auch Win10, öffnet sich ein neuer Tab.

  • [FFX 145.x] Doppelklick (linke Maustaste) auf die Tableiste neuen Tab öffnen?

    • Mira_Belle
    • 9. Dezember 2025 um 21:15
    Zitat von BrokenHeart

    sucht aber nach der Funktionalität, die einen neuen Tab öffnet, wenn man auf die Tableiste doppelt klickt!

    Oh, das kommt davon, wenn man nicht zu 100% bei der Sache ist. Sorry.

    Also ich habe soeben ein neues Profil erstellt und, ....
    bei "doppelklick" in die Tableiste mit der linken Maustaste öffnet sich ein neuer TAB.
    Und nun?

  • [FFX 145.x] Doppelklick (linke Maustaste) auf die Tableiste neuen Tab öffnen?

    • Mira_Belle
    • 9. Dezember 2025 um 20:15

    Versuch mal dieses Skript.

    JavaScript
    // 'Doubleclick on tab reloads tab' script for Firefox 126+ by Aris
    
    /* ***************************************************************************************************************** */
    /* Github: https://github.com/Aris-t2/CustomJSforFx/blob/master/scripts/tabstoolbar_doubleclickontab_reloadtab.uc.js */
    /* ***************************************************************************************************************** */
    
    var DoubleClickOnTabReloadTab = {
    	init: function() {
    		try {
    			gBrowser.tabContainer.addEventListener("dblclick", function abcde(e) {
    				if(e.button==0) {
    					BrowserCommands.reload();
    					e.stopPropagation();
    					e.preventDefault();
    				}
    			}, false);
    		} catch(e) {}
    	}
    }
    setTimeout(function() {
      	DoubleClickOnTabReloadTab.init();
    },500);
    Alles anzeigen

    Funktioniert hier mit Firefox 146.0 (64-Bit)

  • Seitennavigation - Fly Out Menü

    • Mira_Belle
    • 9. Dezember 2025 um 19:46
    Zitat von Horstmann

    Und auch wenn ihr kein anständiges Anpassenfenster mögt ;) , hier mal ein Vorschlag:

    Doch, doch, danke schön.
    Klappt super.
    Und auch für den Tipp mit der Leiste und der Rahmenbreite!
    Denn das hatte ich ganz vergessen!

  • Seitennavigation - Fly Out Menü

    • Mira_Belle
    • 9. Dezember 2025 um 09:12

    Lange hat es gedauert, viel Versuche waren nötig, aber jetzt habe ich es!
    Die zusätzliche Toolbar ist endlich so, wie sie für mich sein soll.
    Ich danke Dir @Horstmann und auch Mitleser für Eure Ideen und eigenen Umsetzungen einer solchen Leiste.

    Hier nun meine Interpretation der Codeschnipsel, die ich aus Euren Skripten bunt zusammen gewürfelt habe.
    Wer es mal testen mag, bitte schön.

    JavaScript
    // New switchable toolbar rechts/links – Version mit gleitendem Slide‑In/Out‑Effekt
    
    (function() {
      if (!window.gBrowser)
        return;
    
      const
      // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■    
        id           = 'NewToolbar_fly_button',
        label        = 'Toggle New Toolbar',
        tooltiptext  = 'Toggle New toolbar',
        // Icon-------------------------------------------------------
        icon         = 'Dock Side Right.svg',   // Icon-Dateiname
        iconPath     = '/chrome/icons/',
        visible      = '34px',                  // Sichtbare Leistenbreite
        isPosH       = 0,                       // 0 = rechts, 1 = links
        isPosV       = '30%',                   // vertikale Position der Leiste
      // isPosV      = '0%',       Leiste am oberen Fensterrand;
      // isPosV      = '50%',      Leiste mittig zur Fensterhöhe;
    	// isPosV      = '100%',     Leiste am unteren Fensterrand;
         delay       = '0.6s';                  // Dauer (schneller/langsamer)
      // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    
      const curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir));
    
      if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
        Services.prefs.setBoolPref('svg.context-properties.content.enabled', true);
      }
    
      const flybox_new = document.createXULElement('toolbox');
      flybox_new.setAttribute('orient','horizontal');
      flybox_new.id = 'flybox_new';
    
      const toolbar = document.createXULElement('toolbar');
      toolbar.id = 'new_flybar';
      toolbar.setAttribute('orient', 'vertical');
      toolbar.setAttribute('customizable', true);
      toolbar.setAttribute('mode', 'icons');
      toolbar.setAttribute('context', 'toolbar-context-menu');
      toolbar.setAttribute('class','toolbar-primary chromeclass-toolbar browser-toolbar customization-target');
      toolbar.setAttribute('toolboxid', 'navigator-toolbox');
      toolbar.setAttribute('toolbarname', 'New Toolbar');
      toolbar.setAttribute('label', 'New Toolbar');
    
      let savedState = false;
      try {
        savedState = Services.prefs.getBoolPref("userChrome.newFlybar.off");
      } catch(e) {}
    
      if (savedState) toolbar.classList.add("fly_off_mode");
    
      flybox_new.appendChild(toolbar);
      document.getElementById('browser').parentNode.appendChild(flybox_new);
    
      CustomizableUI.registerArea(toolbar.id, {legacy: true});
      CustomizableUI.registerToolbarNode(toolbar);
    
      try {
        CustomizableUI.createWidget({
          id,
          defaultArea: CustomizableUI.AREA_NAVBAR,
          label,
          tooltiptext,
          onCreated: (button) => {
            button.style.MozContextProperties = 'fill, stroke, fill-opacity';
            button.style.listStyleImage = 'url("' + curProfDir + iconPath + icon + '")';
            button.style.minWidth = 'fit-content';
          }
        });
      } catch(e) {};
    
      document.getElementById('NewToolbar_fly_button').addEventListener("click", flybar);
    
      function flybar(event) {
        if (event.button === 0) {
          const new_flybar = document.getElementById('new_flybar');
          new_flybar.classList.toggle("fly_off_mode");
          const state = new_flybar.classList.contains("fly_off_mode");
          Services.prefs.setBoolPref("userChrome.newFlybar.off", state);
        }
      }
    
      if (isPosH === 1)
        flybox_new.classList.add("fly_left");
      else
        flybox_new.classList.remove("fly_left");
    
      const css = `
        :root {
          --ug-toolbar_width: ${visible};
          --ug-bg_color: #2b2b2b;
          --ug-border_width: 2px;
          --ug-border_radius: 8px;
          --ug-border_color: #f3a200;
        }
    
        #flybox_new {
          position: fixed !important;
          display: flex !important;
          ${isPosH === 0
            ? `right: 0 !important; margin-right: calc(-1 * var(--ug-border_width));`
            : `left: 0 !important; margin-left: calc(-1 * var(--ug-border_width));`}
          top: ${isPosV} !important;
          transform: translateY(-${isPosV}) !important;
          height: fit-content !important;
          z-index: 4 !important;
        }
    
        #new_flybar {
          display: flex;
          width: var(--ug-toolbar_width);
          min-width: 0 !important;
          overflow: hidden !important;
          justify-content: center !important;
          padding-block: 4px;
          background-color: var(--ug-bg_color) !important;
          border: var(--ug-border_width) solid var(--ug-border_color) !important;
          ${isPosH === 0
            ? `border-radius: var(--ug-border_radius) 0 0 var(--ug-border_radius);`
            : `border-radius: 0 var(--ug-border_radius) var(--ug-border_radius) 0;`}
          transition: transform ${delay} ease-in-out,
                      opacity ${delay} ease-in-out,
                      border-width ${delay} ease-in-out;
          transform: translateX(0);
          opacity: 1;
        }
    
        #new_flybar.fly_off_mode {
          transform: ${isPosH === 0 ? 'translateX(100%)' : 'translateX(-100%)'};
          opacity: 0;
          border-width: 0 !important;
          pointer-events: none;
        }
    
        #new_flybar > :is(.toolbarbutton-1, toolbaritem),
        #new_flybar toolbarpaletteitem > :is(.toolbarbutton-1, toolbaritem) {
          margin-inline: 0px !important;
          margin-block: 2px !important;
          padding: 0px !important;
          opacity: 1 !important;
          transition: none;
        }
      `;
    
      const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
      const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css));
      sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
    
    })();
    Alles anzeigen

    Skript ist unter Zuhilfenahme von KI entstanden.


    PS:
    Das mit dem Pfeil war wirklich eine blöde Idee,
    aber hinterher ist man immer schlauer, heißt es doch, oder?

  • Neue Quicklink-Button

    • Mira_Belle
    • 8. Dezember 2025 um 15:29

    Sören Hentzschel Danke für Deine nachträgliche Antwort!
    Das mit den Quellen konnte ich nun auch nachvollziehen und werde das in Zukunft gar nicht mehr verfolgen noch posten.

    Zum Erstellen, bzw. abändern von Skripten werde ich nach wie vor KI nutzen.
    Natürlich probiere ich erst selber aus, was ich schon kann und was nicht.

    Nur eine Frage! Wie, mit welchem Satz soll ich auf den gebrauch einer KI hinweisen und, soll auch die KI genannt werden?
    Ich nutze ja gelegentlich verschiedene und mach daraus einen Wettkampf der KI's.

  • Seitennavigation - Fly Out Menü

    • Mira_Belle
    • 7. Dezember 2025 um 14:31
    Zitat von Horstmann

    Wobei sich bei den Versionen mit Extra Button schon die Frage stellt, warum man nicht einfach den Hauptbutton benutzt, ...

    Das frage ich mich auch. :D:D:D:D
    Ich bin noch am Testen und hatte diese Idee.
    Ob es nun sinnvoll ist, steht auf einem anderen Blatt.
    Und wie und ob ich so eine Leite nutzen werde, steht auch noch nicht zu 100% fest,
    aber so habe ich nun ein halbes dutzend Optionen.
    Danke. :*

  • Seitennavigation - Fly Out Menü

    • Mira_Belle
    • 6. Dezember 2025 um 23:06
    Zitat von Horstmann

    Du müsstest dir das selber anschauen, das CSS ist aufwendig, und ich biete momentan nur die existierenden Versionen an.
    Mir gefällt es besser, wenn der Button nach dem Ausklappen nicht noch zusätzlich Platz in Richtung Browserinhalt einnimmt.

    Schade, aber so sind die "Geschmäcker" halt verschieden.
    Is´ so!

    Zitat von Horstmann

    Im Prinzip musst du nur das ::before Element von #22 mit dem Button von #29 ersetzen, und dann halt basteln.
    Hier wäre ein Anfang für ein alternatives CSS in deinem Sinne; eine komplette Anpassung ist mir zu viel Aufwand.

    Und da ich mit CSS irgendwie auf Kriegsfuß stehe, wenn es um so aufwändigen und komplexen Code geht,
    bleibe ich erst einmal bei meiner Interpretation Deiner Leiste.

    Aber vielen lieben Dank für die zusätzliche Leiste.

  • Seitennavigation - Fly Out Menü

    • Mira_Belle
    • 6. Dezember 2025 um 17:30

    Die Version aus #22 funktionierte wunderbar!
    Von der Optik gefiel sie mir auch.

    Nun sehe ich Deine neue Variante, und dachte, cool, übertrage doch einfach den Code für das "Klicken" auf den Pfeil.

    Falsch gedacht!!
    Das CSS ist ja sowas von anders! Da steige ich nicht durch.
    Und leider gefällt mir die Optik nicht!
    Verrätst Du mir, wie man den Pfeil, bzw. diese Fläche wieder vor die Leiste bekommt.
    Also das die Optik wieder genau der Optik aus #22 entspricht.

  • Seitennavigation - Fly Out Menü

    • Mira_Belle
    • 6. Dezember 2025 um 00:29

    Danke @Horstmann 
    Mit margin-inline: 0px !important; das Problem mit der Ausrichtung gelöst!

    Und da das Problem mit der Hintergrundfarbe in Deinem vorgeschlagenen Skript,
    wie auch in Mitlesers Skript vorhanden war/ist, konnte die Ursache ja nur im Skript
    für die eigenen Buttons liegen.
    Habe den Fehler lokalisieren können und werde dahingehen alle "Buttons" überarbeiten.

  • Seitennavigation - Fly Out Menü

    • Mira_Belle
    • 5. Dezember 2025 um 19:34
    Zitat von Horstmann

    Aus dem Pfeil kann man auch einen zusätzlichen Button machen, der das ein/ausblenden bei click übernimmt; nur ein Button und hover Funktion, das wäre mir zu viel.

    Da komme ich vielleicht noch darauf zurück, aber vorerst nicht!

    Ich habe mit dem, mit Deinem Skript etwas herumgespielt.
    Learning by doing, sozusagen.

    Hier mal mein bisheriges Ergebnis, zu dem ich aber noch Fragen hätte!

    JavaScript
    //Toggle newtoolbar 8 rechts/links
    
    (function() {
    
        if (location.href !== 'chrome://browser/content/browser.xhtml')
            return;
    
            let ButtonIcon = 'flower-satt32.png';
            let Fly_Position = 0;  // 0 = right , 1 = left
    
            let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir));
            let IconPath = '/chrome/icons/';
            let ImagePath = ProfilePath + IconPath + ButtonIcon;
    
            let Path = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
    
            let flybox_new = document.createXULElement('toolbox');
            flybox_new.setAttribute('orient','horizontal');
            flybox_new.setAttribute('id','flybox_new');
    
            let tb = document.createXULElement('toolbar');
            let tb_label = "New Toolbar";
            tb.id = 'new_flybar';
    
            tb.setAttribute('customizable', true);
            tb.setAttribute("class","toolbar-primary chromeclass-toolbar browser-toolbar customization-target");
            tb.setAttribute('orient', 'vertical');
            tb.setAttribute('mode', 'icons');
            tb.setAttribute("toolboxid","navigator-toolbox");
            tb.setAttribute('context', 'toolbar-context-menu');
            tb.setAttribute("toolbarname", tb_label);
            tb.setAttribute("label", tb_label);
    
    	      flybox_new.appendChild(tb);
            document.getElementById('browser').parentNode.appendChild(flybox_new);
    
            CustomizableUI.registerArea('new_flybar', {legacy: true});
            CustomizableUI.registerToolbarNode(tb);
    
       try {
            CustomizableUI.createWidget({
                id: 'NewToolbar_fly_button',
                type: 'custom',
                defaultArea: CustomizableUI.AREA_NAVBAR,
                    onBuild: function(aDocument) {
                        let toolbaritem = aDocument.createXULElement('toolbarbutton');
                        let props = {
                            id: 'NewToolbar_fly_button',
                            class: 'toolbarbutton-1 chromeclass-toolbar-additional',
                            removable: true,
                            label: 'Toggle New Toolbar',
                            tooltiptext: 'Toggle New toolbar',
                            style: 'list-style-image: url("' + ImagePath + '");',
                        };
                        for(let p in props)
                            toolbaritem.setAttribute(p, props[p]);
                        return toolbaritem;
                    }
            });
        } catch(e) { };
    
        document.getElementById('NewToolbar_fly_button').addEventListener( "click", flybar );
        function flybar() {
            if (event.button === 0 ) {
            new_flybar.classList.toggle("fly_off_mode");
           }
        };
    
        if (Fly_Position === 1) {
           flybox_new.classList.add("fly_left");
           }
        else {
           flybox_new.classList.remove("fly_left");
        };
    
    const css =`
    
    
    :root {
        --ug-newbar_width: 0px;
        --ug-newbar_inner_width: 32px;
        --ug-newbar_max_width: calc(var(--ug-newbar_inner_width) + 2*var(--ug-fly_border));
    
        --ug-arrow_width: 20px;
        --ug-arrow_height: 34px;
    
        --ug-newbar_bg_color: #2b2b2b;
        --ug-newbar_radius: 8px;
        --ug-fly_border: 3px;
        --ug-fly_border_color: orange;
        --ug-fly_delay: 3s; /* animation delay when closing */
    }
    
    #flybox_new {
        position: fixed;
        display: flex;
        top: 50%;
        right: 0;
        transform: translateY(-50%);
        z-index: 4 !important;
        height: fit-content;
        width: fit-content;
    }
    
    #new_flybar {
        display: flex;
        min-width: 0px !important;
        width: var(--ug-newbar_width);
        overflow: hidden !important;
        justify-content: center !important;
        padding-block: 4px;
        background-color: var(--ug-newbar_bg_color) !important;
        border-color: var(--ug-fly_border_color);
        border-style: solid !important;
        border-width: var(--ug-fly_border);
        border-radius: 0 0 0 var(--ug-newbar_radius);
        margin-inline: 0px calc(0px - 2*var(--ug-fly_border));
        transition: width 0.5s ease, margin 0.5s ease;
        transition-delay: var(--ug-fly_delay);
    }
    
     #new_flybar:not([customizing]):hover {
        width: var(--ug-newbar_max_width);
        margin-inline: 0px calc(0px - 1*var(--ug-fly_border));
        transition-delay: 0s;
    }
    
    #new_flybar:not([customizing]).fly_off_mode {
        display: none !important;
    }
    
    #new_flybar > :is(.toolbarbutton-1, toolbaritem),
    #new_flybar toolbarpaletteitem > :is(.toolbarbutton-1, toolbaritem) {
        margin-block: 2px !important;
        padding: 0px !important;
        opacity: 0 !important;
        transition: opacity 0.25s ease;
        transition-delay: var(--ug-fly_delay);
    }
    
    #new_flybar:not([customizing]):hover > :is(.toolbarbutton-1, toolbaritem) {
        opacity: 1 !important;
        transition: opacity 0.5s ease;
        transition-delay: 0s;
    }
    
    /*---  arrow  ---*/
    
    #new_flybar::before {
        content:"";
        display: flex;
        position: absolute;
        background-color: var(--ug-newbar_bg_color);    
        top: 0px;
        left: calc(-0px - var(--ug-arrow_width) - 1*var(--ug-fly_border));
        height: var(--ug-arrow_height);
        width: calc(var(--ug-arrow_width) + 1*var(--ug-fly_border));
        /*background-image: url(chrome://global/skin/icons/arrow-left.svg);*/
    background-image: url("${Path}/Chevron-left.svg");
    -moz-context-properties: fill, fill-opacity;
    fill: #fafafa;
        background-repeat: no-repeat;
        background-size: 16px;
        background-position-x: left calc(50% - 0.5*var(--ug-fly_border)) ;
        background-position-y: calc(50% - 0px);
        border-right-width: 0px !important;
        border-radius: var(--ug-newbar_radius) 0 0 var(--ug-newbar_radius);
        border: var(--ug-fly_border) solid var(--ug-fly_border_color);
        transition: right 0.5s ease, left 0.5s ease, margin 0.5s ease;
        transition-delay: var(--ug-fly_delay);
    }
    
    #new_flybar:hover::before {
        /*background-image: url(chrome://global/skin/icons/arrow-right.svg);*/
    background-image: url("${Path}/Chevron-right.svg");
    -moz-context-properties: fill, fill-opacity;
    fill: #fafafa;
        transition-delay: 0s;
    }
    
    /*---  left  ---*/
    
    :root:not([customizing]) #flybox_new.fly_left {
        left: 0;
    }
    
    #flybox_new.fly_left #new_flybar:not([customizing]) {
        border-radius: 0 0 var(--ug-newbar_radius) 0;
        margin-inline: calc(0px - 2*var(--ug-fly_border)) 0px;
    }
    
    #flybox_new.fly_left #new_flybar:not([customizing]):hover {
        width: var(--ug-newbar_max_width);
        margin-inline: calc(0px - 1*var(--ug-fly_border)) 0px;
    }
    
    #flybox_new.fly_left #new_flybar::before {
        left: unset;
        right: calc(-0px - var(--ug-arrow_width) - 1*var(--ug-fly_border));
        border-left-width: 0px !important;
        border-right-width: var(--ug-fly_border) !important;
        border-radius: 0 var(--ug-newbar_radius) var(--ug-newbar_radius) 0;
        background-image: url(chrome://global/skin/icons/arrow-right.svg);
        background-position-x: right calc(50% - 0.5*var(--ug-fly_border)) ;
    }
    
     #flybox_new.fly_left #new_flybar:hover::before {
        background-image: url(chrome://global/skin/icons/arrow-left.svg);
    }
    
    
    /*---  customizing  ---*/
    
    #new_flybar[customizing] {
        min-width: var(--ug-newbar_max_width) !important;
        min-height: var(--ug-newbar_max_width) !important;
        padding-bottom: 48px !important;
        border-radius: var(--ug-newbar_radius) 0 0 var(--ug-newbar_radius) !important;
    }
    
    #new_flybar toolbarpaletteitem > :is(.toolbarbutton-1, toolbaritem) {
        opacity: 1 !important;
    }
    
    #customization-content-container {
        margin-right: var(--ug-newbar_max_width) !important;
    }
    
    #new_flybar[customizing]::before {
        display: none !important;
    }
    
    `;
    
        const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
        const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css));
        sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
    
    })();
    Alles anzeigen

    Es funktioniert so weit alles recht gut, nur warum werden eigene Buttons anders behandelt als jene,
    die von Erweiterungen stammen.

    Zum Beispiel werden die Buttons von Erweiterungen weiter rechts dargestellt.
    Sie sind also etwas außerhalb der Mitte.
    Dann "eigene" Buttons, deren Hintergrundfarbe, beim Hovern, entspricht nicht der im Skript definierten Farbe.
    Bei einem roten Symbol im Button ist die "Hoverfarbe" dann auch leicht rötlich.
    Bei blau bläulich und bei gelb eben gelblich.
    Nur bei Buttons von Erweiterungen, da stimmt es!

  • Seitennavigation - Fly Out Menü

    • Mira_Belle
    • 5. Dezember 2025 um 16:53

    @Horstmann Cool, das ist ja fast so, wie ich mir das vorgestellt habe!

  • Schaltbare vertikale Overlay-Zusatzleiste

    • Mira_Belle
    • 4. Dezember 2025 um 22:50

    Mitleser Bitte verstehe mich nicht falsch!
    Ich finde Deine Version einer zusätzlichen Leiste einfach suuuuper:!:

    Was Du da zitierst, war eine Reaktion auf Deine Aussage:

    Zitat

    Das ist doch wiedermal Schrott; niemand braucht das! :( 🦄️🫎️ :thumbdown:

    Also Schwamm drüber, ja?

  • Schaltbare vertikale Overlay-Zusatzleiste

    • Mira_Belle
    • 4. Dezember 2025 um 20:53

    Mitleser Wofür bedankst Du Dich bei Sören?
    1. War es Andreas, der die Beiträge abgetrennt hat,
    und
    2. war es mein "Wunsch"! => Siehe hier.

  • Eigene Zusatzleisten

    • Mira_Belle
    • 3. Dezember 2025 um 09:48
    Zitat von Horstmann

    Sollte eigentlich nur plug&play sein für deine Extras. ;)

    Nicht ganz, Du hast ja IDs geändert. Habe ich aber hinbekommen.
    Aus "newtoolbar" wurde ja "new_toolbar".

Unterstütze uns!

Jährlich (2026)

71,6 %

71,6% (554,79 von 775 EUR)

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