Skip to content

Commit 825572b

Browse files
authored
Update fast-search-card.js
1 parent bbd0798 commit 825572b

File tree

1 file changed

+60
-17
lines changed

1 file changed

+60
-17
lines changed

dist/fast-search-card.js

Lines changed: 60 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5159,28 +5159,71 @@ class FastSearchCard extends HTMLElement {
51595159
const categoryButtons = this.shadowRoot.querySelector('.category-buttons');
51605160
if (!this.isMenuView) return;
51615161

5162-
// ✅ SOFORT AUSBLENDEN ohne Animation
5162+
// 🌊 REVERSE RIPPLE ANIMATION
5163+
this.animateReverseRipple(categoryButtons);
5164+
}
5165+
5166+
animateReverseRipple(categoryButtons) {
5167+
const buttons = categoryButtons.querySelectorAll('.category-button');
5168+
5169+
// Reverse-Reihenfolge: Letzter Button zuerst
5170+
buttons.forEach((button, index) => {
5171+
const reverseIndex = buttons.length - 1 - index;
5172+
5173+
setTimeout(() => {
5174+
button.animate([
5175+
{
5176+
opacity: 1,
5177+
transform: 'translateY(0) scale(1) rotate(0deg)',
5178+
filter: 'blur(0px)'
5179+
},
5180+
{
5181+
opacity: 0.3,
5182+
transform: 'translateY(20px) scale(0.6) rotate(12deg)',
5183+
filter: 'blur(4px)'
5184+
}
5185+
], {
5186+
duration: 350,
5187+
easing: 'ease-in',
5188+
fill: 'forwards'
5189+
});
5190+
}, reverseIndex * 60);
5191+
});
5192+
5193+
// Nach allen Button-Animationen: Container ausblenden
5194+
setTimeout(() => {
5195+
categoryButtons.animate([
5196+
{ opacity: 1 },
5197+
{ opacity: 0 }
5198+
], {
5199+
duration: 200,
5200+
easing: 'ease-in',
5201+
fill: 'forwards'
5202+
}).finished.then(() => {
5203+
this.cleanupCategoryButtons(categoryButtons);
5204+
});
5205+
}, buttons.length * 60 + 350);
5206+
}
5207+
5208+
cleanupCategoryButtons(categoryButtons) {
51635209
categoryButtons.classList.remove('visible');
51645210
this.isMenuView = false;
51655211

5166-
// ✅ ALLE STYLES ZURÜCKSETZEN
5167-
const buttons = categoryButtons?.querySelectorAll('.category-button');
5168-
if (categoryButtons) {
5169-
categoryButtons.style.opacity = '';
5170-
categoryButtons.style.transform = '';
5171-
categoryButtons.style.display = '';
5172-
}
5173-
if (buttons) {
5174-
buttons.forEach(button => {
5175-
button.style.opacity = '';
5176-
button.style.transform = '';
5177-
button.style.filter = '';
5178-
});
5179-
}
5212+
// Alle Styles zurücksetzen
5213+
const buttons = categoryButtons.querySelectorAll('.category-button');
5214+
categoryButtons.style.opacity = '';
5215+
categoryButtons.style.transform = '';
5216+
categoryButtons.style.display = '';
51805217

5181-
// ✅ PANEL WIEDER ERWEITERN
5218+
buttons.forEach(button => {
5219+
button.style.opacity = '';
5220+
button.style.transform = '';
5221+
button.style.filter = '';
5222+
});
5223+
5224+
// Panel wieder erweitern
51825225
this.expandPanel();
5183-
}
5226+
}
51845227

51855228
handleCategorySelect(selectedButton) {
51865229
const category = selectedButton.dataset.category;

0 commit comments

Comments
 (0)