diff --git a/src/Navbar/Navbar.module.styl b/src/Navbar/Navbar.module.styl index 4c895d8..29eeece 100644 --- a/src/Navbar/Navbar.module.styl +++ b/src/Navbar/Navbar.module.styl @@ -39,3 +39,6 @@ $height = 76px .header margin-right 16px + +.menu + opacity 1 diff --git a/src/Navbar/index.tsx b/src/Navbar/index.tsx index 3b209dd..7ddee1c 100644 --- a/src/Navbar/index.tsx +++ b/src/Navbar/index.tsx @@ -68,7 +68,7 @@ interface State { /** * Navbar Component - * @version 1.0.3 + * @version 1.0.4 */ export default class Navbar extends React.Component { @@ -162,13 +162,20 @@ export default class Navbar extends React.Component { )} {this.state.subMenu && (
- +
)} ) - private onBodyClick = () => { + private onBodyClick = (ev: MouseEvent) => { + let target = ev.target as HTMLElement | null + do { + if (target && target.classList.contains(css.menu)) { + return + } + target = target?.parentElement as HTMLElement | null + } while (target) this.setState({subMenu: undefined}) } @@ -176,7 +183,6 @@ export default class Navbar extends React.Component { ev.stopPropagation() const x = window.innerWidth - (ev.currentTarget.offsetLeft + ev.currentTarget.offsetWidth) if (subMenu && (!this.state.subMenu || x !== this.state.subMenu?.x)) { - console.log(ev) this.setState({ subMenu: { x,