@@ -5012,33 +5012,40 @@ class FastSearchCard extends HTMLElement {
50125012 this.isMenuView = true;
50135013 categoryButtons.classList.add('visible');
50145014
5015- // ✅ KRITISCHER FIX: Backdrop-Filter sofort aktivieren
5015+ // ✅ SOFORT: Backdrop-Filter per CSS erzwingen
5016+ this.addInstantBackdropCSS();
5017+
5018+ // ✅ Backdrop aktivieren
50165019 this.forceBackdropFilterActivation(categoryButtons);
50175020
50185021 // Animation danach
50195022 setTimeout(() => {
50205023 this.animateRippleEffect(categoryButtons);
5021- }, 50);
5024+ }, 20); // Kürzer!
50225025 }
50235026
50245027 forceBackdropFilterActivation(categoryButtons) {
50255028 const buttons = categoryButtons.querySelectorAll('.category-button');
50265029
5027- buttons.forEach(button => {
5028- // ✅ Browser zum Neubau des Backdrop-Filters zwingen
5029- button.style.transform = 'translateZ(0)';
5030- button.style.willChange = 'transform';
5031-
5032- // ✅ Kurzer "Flicker" um Backdrop-Filter zu aktivieren
5033- button.style.opacity = '0.99';
5030+ buttons.forEach((button, index) => {
5031+ // ✅ Mehrfache Browser-Tricks kombinieren
5032+ button.style.transform = 'translateZ(0) scale(1.001)';
5033+ button.style.willChange = 'transform, opacity, backdrop-filter';
5034+ button.style.backfaceVisibility = 'hidden';
50345035
5035- // Sofort wieder normal
5036+ // ✅ Gestaffelter Opacity-Flicker für jeden Button
50365037 setTimeout(() => {
5037- button.style.opacity = '1';
5038- }, 1);
5038+ button.style.opacity = '0.98';
5039+ setTimeout(() => {
5040+ button.style.opacity = '1';
5041+ // Force repaint
5042+ button.offsetHeight;
5043+ }, 5);
5044+ }, index * 2);
50395045 });
50405046
5041- // ✅ Browser zur Neuberechnung zwingen
5047+ // ✅ Container auch aktivieren
5048+ categoryButtons.style.transform = 'translateZ(0)';
50425049 categoryButtons.offsetHeight; // Force reflow
50435050 }
50445051
0 commit comments