Reactstrap 鼠标悬停时自动下拉菜单

Posted

技术标签:

【中文标题】Reactstrap 鼠标悬停时自动下拉菜单【英文标题】:Reactstrap Auto Dropdown Menu On Mouse Hower 【发布时间】:2020-04-10 23:49:48 【问题描述】:

我正在尝试使用 reactstarap 实现滑动下拉菜单,但找不到任何支持文档或代码。 Bellow 是我的示例菜单,我想要实现的是鼠标悬停动作时的自动滑动下拉菜单。

 <div>
  <Nav navbar>
    <NavItem>
      <Link className="nav-link" to="/">Home</Link>
    </NavItem>

    <ButtonDropdown nav inNavbar isOpen=dropIsOpen onClick=handleDropdown>
      <DropdownToggle nav caret className="nav-link dropdown-toggle">Services</DropdownToggle>
      <DropdownMenu className="dropdown-menu">
        <DropdownItem>
          <Link className="dropdown-item" to="/services/service1">Service1</Link>
        </DropdownItem>
        <DropdownItem>
          <Link className="dropdown-item" to="/services/service2">Service2</Link>
        </DropdownItem>
        <DropdownItem>
          <Link className="dropdown-item" to="/services/service3">Service3</Link>
        </DropdownItem>
        <DropdownItem>
          <Link className="dropdown-item" to="/services/service4">Service4</Link>
        </DropdownItem>
      </DropdownMenu>
    </ButtonDropdown>

    <NavItem>
      <Link className="nav-link" activeClassName="active" to="/our-products">Products</Link>
    </NavItem>

    <NavItem>
      <Link className="nav-link" activeClassName="active" to="/our-clients">Clients</Link>
    </NavItem>

    <NavItem>
      <Link className="nav-link" activeClassName="active" to="/about-us">About Us</Link>
    </NavItem>

    <NavItem>
      <Link className="nav-link" activeClassName="active" to="/contact-us">Contact Us</Link>
    </NavItem>

  </Nav>
</div>

此下拉菜单仅适用于鼠标单击,并且 reactstrap 没有内置方法可以在鼠标悬停时实现它,有没有办法使用纯 CSS 来实现?

【问题讨论】:

【参考方案1】:

当然你可以使用 CSS,但是可以在 React 上使用合成事件来做到这一点:

https://reactjs.org/docs/events.html#mouse-events

您不仅有 onClick 事件,还有以下可用列表:

onClick onContextMenu onDoubleClick onDrag onDragEnd onDragEnter onDragExit
onDragLeave onDragOver onDragStart onDrop onMouseDown onMouseEnter onMouseLeave
onMouseMove onMouseOut onMouseOver onMouseUp

供您使用:

onMouseOver

    <ButtonDropdown nav inNavbar isOpen=dropIsOpen onMouseOver=handleDropdown>

W3C web onmouseover 事件的示例。

【讨论】:

以上是关于Reactstrap 鼠标悬停时自动下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

如何在鼠标位于下拉菜单的子菜单中时保持父菜单悬停

将鼠标悬停在菜单上时,将焦点从下拉列表设置到窗口

HTML中鼠标悬浮时的下拉菜单用CSS怎么做

Bootstrap 下拉菜单在悬停时关闭

在鼠标悬停上打开菜单,在mouseleave上关闭菜单进行反应

Bootstrap下拉菜单在悬停时不下拉[重复]