From d9692a586e10123676d093b6ff173a0886506342 Mon Sep 17 00:00:00 2001 From: druid <druid@druids-MBP-2.lan> Date: Tue, 19 Jan 2021 10:42:52 +0200 Subject: [PATCH] fadeout fixes --- .../hy-desktop-menu-links.scss | 9 ++-- .../hy-desktop-menu-links.tsx | 41 +++++++++---------- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.scss b/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.scss index 98b7175a..d4926454 100644 --- a/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.scss +++ b/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.scss @@ -28,6 +28,7 @@ display: flex; height: 100%; } + // First level menu items .desktop-menu-link { background-color: transparent; @@ -97,7 +98,6 @@ // On hover: heading icon is turned 180deg and grows bigger. &--is-active { - //color: var(--link-blue); position: relative; &:hover, &:focus { @@ -135,20 +135,21 @@ // Panel with second level menu items and shortcuts. .hy-desktop-menu-panel { - display: flex; + display: none; flex-direction: row; opacity: 0; transition: none; position: absolute; left: 0; top: 0; + z-index: 510; + width: 100%; &--is-active { background: radial-gradient(circle, var(--grayscale-light) 0%, var(--grayscale-background-box) 100%); box-shadow: 0 0 20px 0 rgba(14, 104, 139, 0.1) inset; + display: flex; padding-left: 300px; - width: 100%; - z-index: 510; } &__panel-toggle { diff --git a/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.tsx b/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.tsx index 38881507..0def22ce 100644 --- a/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.tsx +++ b/src/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.tsx @@ -45,6 +45,7 @@ export class HyDesktopMenuLinks { private _headerBorderOffset: number = 0; private _hoverTimer = null; + private _fadeOutTimer = null; @Watch('dataDesktopLinks') dataDesktopLinksWatcher(data: DesktopLinks[] | string) { @@ -74,20 +75,7 @@ export class HyDesktopMenuLinks { // Close menu lang menu if it's open this.menuDesktopToggled.emit(); - /* - @Listen('handleClick', {capture: true}) handleClick() { - this.menuContainerToggled.emit({ - triggerItem: this.menuLinkId, - triggerType: 'add', - }); - const currentParent = this.el.parentNode; - this.addBreadcrumb.emit({ - url: this.url, - label: currentParent.parentElement.getAttribute('label'), - bid: this.menuLinkId, - }); - } - */ + clearTimeout(this._fadeOutTimer); // Open desktop menu panel this.isDesktopMenuOpen = true; @@ -189,15 +177,24 @@ export class HyDesktopMenuLinks { item.setAttribute('aria-expanded', 'false'); }); - menuPanelItems.forEach((item) => { - item.classList.remove('hy-desktop-menu-panel--is-active'); - item.setAttribute('aria-hidden', 'true'); - - (item as HTMLElement).style.opacity = '0'; - if (fadeOut) { + if (fadeOut) { + menuPanelItems.forEach((item) => { + (item as HTMLElement).style.opacity = '0'; (item as HTMLElement).style.transition = 'opacity 1s'; - } - }); + }); + + this._fadeOutTimer = setTimeout(() => { + menuPanelItems.forEach((item) => { + item.classList.remove('hy-desktop-menu-panel--is-active'); + item.setAttribute('aria-hidden', 'true'); + }); + }, 2500); + } else { + menuPanelItems.forEach((item) => { + item.classList.remove('hy-desktop-menu-panel--is-active'); + item.setAttribute('aria-hidden', 'true'); + }); + } } handleDesktopMenuClose(event) { -- GitLab