Skip to content

Commit 8f7539a

Browse files
authored
Update fast-search-card.js
1 parent d8d41a9 commit 8f7539a

File tree

1 file changed

+38
-23
lines changed

1 file changed

+38
-23
lines changed

dist/fast-search-card.js

Lines changed: 38 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4995,6 +4995,8 @@ class FastSearchCard extends HTMLElement {
49954995
}
49964996

49974997
showCategoryButtons() {
4998+
this.collapsePanel();
4999+
49985000
if (this.isMobile()) {
49995001
const searchWrapper = this.shadowRoot.querySelector('.search-panel');
50005002
if (searchWrapper) {
@@ -5003,30 +5005,43 @@ class FastSearchCard extends HTMLElement {
50035005
}
50045006

50055007
const categoryButtons = this.shadowRoot.querySelector('.category-buttons');
5006-
const searchPanel = this.shadowRoot.querySelector('.search-panel');
50075008

5008-
// ✅ Reset + Vorbereitung
5009+
// ✅ Reset
50095010
this.resetAllCategoryStyles();
5011+
50105012
this.isMenuView = true;
50115013
categoryButtons.classList.add('visible');
50125014

5013-
// ✅ SYNCHRONISIERT: Panel UND Buttons gleichzeitig animieren
5014-
5015-
// 1️⃣ Panel sofort kollabieren (ohne Animation)
5016-
this.isPanelExpanded = false;
5017-
searchPanel.classList.remove('expanded');
5015+
// ✅ KRITISCHER FIX: Backdrop-Filter sofort aktivieren
5016+
this.forceBackdropFilterActivation(categoryButtons);
50185017

5019-
// 2️⃣ Kurze Pause, dann Panel UND Buttons gleichzeitig expandieren/animieren
5018+
// Animation danach
50205019
setTimeout(() => {
5021-
// Panel expandieren (für milchigen Background)
5022-
this.isPanelExpanded = true;
5023-
searchPanel.classList.add('expanded');
5024-
5025-
// Buttons animieren - GLEICHZEITIG!
50265020
this.animateRippleEffect(categoryButtons);
50275021
}, 50);
50285022
}
50295023

5024+
forceBackdropFilterActivation(categoryButtons) {
5025+
const buttons = categoryButtons.querySelectorAll('.category-button');
5026+
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';
5034+
5035+
// Sofort wieder normal
5036+
setTimeout(() => {
5037+
button.style.opacity = '1';
5038+
}, 1);
5039+
});
5040+
5041+
// ✅ Browser zur Neuberechnung zwingen
5042+
categoryButtons.offsetHeight; // Force reflow
5043+
}
5044+
50305045
resetAllCategoryStyles() {
50315046
const categoryButtons = this.shadowRoot.querySelector('.category-buttons');
50325047
const buttons = categoryButtons?.querySelectorAll('.category-button');
@@ -5102,41 +5117,41 @@ class FastSearchCard extends HTMLElement {
51025117
animateRippleEffect(categoryButtons) {
51035118
const buttons = categoryButtons.querySelectorAll('.category-button');
51045119

5105-
// ✅ Container und Buttons sofort sichtbar
5120+
// ✅ Container sichtbar
51065121
categoryButtons.style.opacity = '1';
5107-
categoryButtons.style.transform = 'translateX(0) scale(1)';
51085122
categoryButtons.style.display = 'flex';
51095123

5124+
// ✅ Buttons sofort sichtbar mit aktivem Backdrop-Filter
51105125
buttons.forEach(button => {
51115126
button.style.opacity = '1';
51125127
button.style.transform = 'none';
51135128
button.style.filter = 'none';
51145129
});
51155130

5116-
// ✅ Schnellere, elegantere Animation
5131+
// ✅ Schnelle Animation
51175132
setTimeout(() => {
51185133
buttons.forEach((button, index) => {
51195134
button.animate([
51205135
{
51215136
opacity: 1,
5122-
transform: 'translateY(0) scale(1) rotate(0deg)',
5137+
transform: 'translateY(0) scale(1)',
51235138
filter: 'blur(0px)'
51245139
},
51255140
{
5126-
opacity: 0.8,
5127-
transform: 'translateY(-5px) scale(1.1) rotate(2deg)',
5141+
opacity: 0.9,
5142+
transform: 'translateY(-3px) scale(1.05)',
51285143
filter: 'blur(0px)',
5129-
offset: 0.4
5144+
offset: 0.5
51305145
},
51315146
{
51325147
opacity: 1,
5133-
transform: 'translateY(0) scale(1) rotate(0deg)',
5148+
transform: 'translateY(0) scale(1)',
51345149
filter: 'blur(0px)'
51355150
}
51365151
], {
5137-
duration: 300, // ← Schneller!
5152+
duration: 250,
51385153
easing: 'cubic-bezier(0.16, 1, 0.3, 1)',
5139-
delay: index * 40, // ← Weniger Delay
5154+
delay: index * 30,
51405155
fill: 'none'
51415156
});
51425157
});

0 commit comments

Comments
 (0)