首页 > 解决方案 > 下拉按钮列表。鼠标悬停在右侧显示按钮说明

问题描述

我有一个按钮列表和带有下拉菜单的按钮。
当我将鼠标放在每个按钮上时,它会在列表底部显示按钮的简要说明(参见示例)。

现在 它仅适用于一级按钮,但不适用于下拉列表项。

总之,我想:

  1. 从列表的右侧显示每个项目的描述 ( onmouseover),如图所示(不是在底部,就像现在一样)

  2. 不仅为第一级按钮显示描述 ( onmouseover),还为下拉列表中的项目显示描述 ( )。

我会非常感谢一个可行的解决方案。

请点击查看图片进行布局

.element-1,
.element-2,
.element-3 {
  display: none;
}

.a-1:hover~.element-1 {
  display: block;
}

.a-2:hover~.element-2 {
  display: block;
}

.a-3:hover~.element-3 {
  display: block;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<p>
  <font color="#909497">Drop-down Buttons list</font>
</p>
<div class="container" style="width: 350px; height: 22px;">
  <button title="Description 1" class="a-1" id="menu1" onclick="window.open(&#39;http://link.com&#39;, &#39;_blank&#39;)" type="button" style="width: 268px; height: 68px;">Button 1</button>
  <div align="left" class="dropdown" style="width: 333px; height: 34px;">
    <button class="btn btn-default dropdown-toggle" id="menu1" aria-expanded="false" type="button" data-toggle="dropdown" style="width: 268px; height: 34px;">Drop-Down Button 1 
         <span class="caret"></span></button>
    <ul title="Drop-down item 1 description" class="dropdown-menu" role="menu" aria-labelledby="menu1">
      <li class="a-2" role="presentation">
        <a tabindex="-1" class="a-2" href="https://link2.com/" target="_blank">Drop-down item 1</a></li>
      <li title="Drop-down item 2 description" role="presentation">
        <a tabindex="-1" role="menuitem" href="https://link3.com" target="_blank">Drop-down item 2</a></li>
    </ul>
  </div>
  <div class="dropdown">
    <button class="btn btn-default dropdown-toggle" id="menu1" type="button" data-toggle="dropdown" style="width: 268px; height: 34px;">Drop-Down Button 3 
         <span class="caret"></span></button>
    <ul class="dropdown-menu" role="menu" aria-labelledby="menu1">
      <li title="drop-down item 3 description" class="a-2" role="presentation">
        <a tabindex="-1" role="menuitem" href="http://link6.com" target="_blank">Drop-down item 3 </a></li>
      <li title="drop-down item 4 description" role="presentation">
        <a tabindex="-1" role="menuitem" href="#">Drop-down item 4 </a></li>
      <li title="drop-down item 5 description" role="presentation">
        <a tabindex="-1" role="menuitem" href="#">Drop-down item 5 </a></li>
      <li title="drop-down item 6 description" role="presentation">
        <a tabindex="-1" role="menuitem" href="http://link.com" target="_blank">Drop-down item 6</a></li>
      <li title="Drop-down item 7 description" role="presentation">
        <a tabindex="-1" role="menuitem" href="#">Drop-down item 7</a></li>
    </ul>
  </div>
  <button title="Button 4 description" class="a-2" id="menu1" onclick="window.open(&#39;http://link.com&#39;, &#39;_blank&#39;)" type="button" style="width: 268px; height: 34px;">Button 4</button><button title="Button 4 description" class="a-3" id="menu1"
    onclick="window.open(&#39;http://link.com&#39;, &#39;_blank&#39;)" type="button" style="width: 268px; height: 34px;">Button 5 </button>&#160;&#160;&#160;&#160;&#160;&#160;
  <div class="element-1" style="width: 350px;">
    <img width="45" height="45" src="https://d2gg9evh47fn9z.cloudfront.net/800px_COLOURBOX2310920.jpg" data-themekey="#" alt="" />
    <br/>Button 1 description</div>
  <div class="element-2" style="width: 350px;">Button 4 description</div>
  <div class="element-3" style="width: 350px;">Button 5 description</div>
</div>

标签: javascripthtmlcssdom-eventsmouseevent

解决方案


我已经将描述元素移到了按钮之后。
然后,我添加了一个类description来轻松定位所有 description divs,
另一个,descripted轻松定位所有带有 description 的按钮......</p>

添加一些 CSS 就可以了:

.container {
  /* Added for visibility */
  background: #eee;
}

.description {
  display: none;
  /* The absolute positioning refers to the container. */
  position: absolute;
  transform: translate(100%, -100%);
}

.descripted:hover+.description {
  display: block;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<p>
  <font color="#909497">Drop-down Buttons list</font>
</p>
<div class="container" style="width: 350px; height: 22px;">
  <button title="Description 1" class="a-1 descripted" id="menu1" onclick="window.open(&#39;http://link.com&#39;, &#39;_blank&#39;)" type="button" style="width: 268px; height: 68px;">Button 1</button>
  <div class="description" style="width: 350px;">
    <img width="45" height="45" src="https://d2gg9evh47fn9z.cloudfront.net/800px_COLOURBOX2310920.jpg" data-themekey="#" alt="" />
    <br/>Button 1 description
  </div>
  <div align="left" class="dropdown" style="width: 333px; height: 34px;">
    <button class="btn btn-default dropdown-toggle descripted" id="menu1" aria-expanded="false" type="button" data-toggle="dropdown" style="width: 268px; height: 34px;">Drop-Down Button 1<span class="caret"></span></button>
    <div class="description" style="width: 350px;">
      <img width="45" height="45" src="https://d2gg9evh47fn9z.cloudfront.net/800px_COLOURBOX2310920.jpg" data-themekey="#" alt="" />
      <br/>Drop-Down 1 description
    </div>

    <ul title="Drop-down item 1" class="dropdown-menu" role="menu" aria-labelledby="menu1">
      <li class="a-2 descripted" role="presentation">
        <a tabindex="-1" class="a-2" href="https://link2.com/" target="_blank">Drop-down item 1</a>
      </li>
      <div class="description" style="width: 350px;">
        <img width="45" height="45" src="https://d2gg9evh47fn9z.cloudfront.net/800px_COLOURBOX2310920.jpg" data-themekey="#" alt="" />
        <br/>Drop-Down item 1 description
      </div>
      <li class="descripted" title="Drop-down item 2" role="presentation">
        <a tabindex="-1" role="menuitem" href="https://link3.com" target="_blank">Drop-down item 2</a>
      </li>
      <div class="description" style="width: 350px;">
        <img width="45" height="45" src="https://d2gg9evh47fn9z.cloudfront.net/800px_COLOURBOX2310920.jpg" data-themekey="#" alt="" />
        <br/>Drop-Down item 2 description
      </div>
    </ul>
  </div>
  <div class="dropdown">
    <button class="btn btn-default dropdown-toggle" id="menu1" type="button" data-toggle="dropdown" style="width: 268px; height: 34px;">Drop-Down Button 3<span class="caret"></span>
    </button>
    <ul class="dropdown-menu" role="menu" aria-labelledby="menu1">
      <li title="drop-down item 3 description" class="a-2" role="presentation">
        <a tabindex="-1" role="menuitem" href="http://link6.com" target="_blank">Drop-down item 3 </a>
      </li>
      <li title="drop-down item 4 description" role="presentation">
        <a tabindex="-1" role="menuitem" href="#">Drop-down item 4 </a>
      </li>
      <li title="drop-down item 5 description" role="presentation">
        <a tabindex="-1" role="menuitem" href="#">Drop-down item 5 </a>
      </li>
      <li title="drop-down item 6 description" role="presentation">
        <a tabindex="-1" role="menuitem" href="http://link.com" target="_blank">Drop-down item 6</a>
      </li>
      <li title="Drop-down item 7 description" role="presentation">
        <a tabindex="-1" role="menuitem" href="#">Drop-down item 7</a>
      </li>
    </ul>
  </div>
  <button title="Button 4 description" class="a-2" id="menu1" onclick="window.open(&#39;http://link.com&#39;, &#39;_blank&#39;)" type="button" style="width: 268px; height: 34px;">Button 4</button><button title="Button 4 description" class="a-3" id="menu1"
    onclick="window.open(&#39;http://link.com&#39;, &#39;_blank&#39;)" type="button" style="width: 268px; height: 34px;">Button 5 </button>&#160;&#160;&#160;&#160;&#160;&#160;
</div>

我只在前两个按钮上完成了它,但你明白了!
如果您想进行一些修改,请随时发表评论。

希望能帮助到你!


推荐阅读