【问题标题】:Making a drop down menu containing radio buttons制作一个包含单选按钮的下拉菜单
【发布时间】:2015-10-05 04:49:04
【问题描述】:

所以这是我想要实现的概念: sketch

对于那些无法查看图像的人,我有一个下拉菜单(标题为“预设”),其中包含一个单选按钮列表,每个按钮代表一个不同的预设,当悬停/选择单选按钮时,预设对应使用该单选按钮预览(悬停在按钮上)并在不同的 div 元素上实现(选择单选按钮)。

<nav id="topNav">
<ul style="list-style: none;">
<li>
  <a href="#" title="Nav Link 2">presets</a>
  <ul style="list-style: none;">
    <li><input type="radio" class="rb" id="pr1" name="preset" value="1" checked="checked">Preset 1</li>
    <li><input type="radio" class="rb" id="pr2" name="preset" value="2">Preset 2</li>
    <li><input type="radio" class="rb" id="pr3" name="preset" value="3">Preset 3</li>
    <li><input type="radio" class="rb" id="pr4" name="preset" value="4">Preset 4</li>
  </ul>
</li>

      <div id="a"></div>

Here 是我执行此操作的尝试。有几件事我在排除故障时遇到了问题(因此我需要先自行排除故障,然后才能解决我的问题):

  1. 默认情况下,每次刷新页面时菜单似乎都会下拉。有没有办法让菜单在刷新时保持紧凑?

  2. 1234563我想我需要为此使用脚本,对吧? Specifically, when the mouse cursor hovers over a preset, the div element will momentarily express the details of that preset (in this case, a different color) and when the preset is selected, the div element will change its current color to that of the选择预设。
  3. 我计划对此进行扩展,让用户为 div 元素选择一个预设并发送表单以将其保存在数据库中。考虑到我想要的功能,在浏览器兼容性方面我会遇到困难吗?

【问题讨论】:

    标签: javascript html css


    【解决方案1】:
    1. 您可以在用作下拉菜单的ul 元素上设置display:none
    2. 对此最实用的方法是将mouseentermouseleave 事件侦听器添加到每个li 项目。在mouseenter 上,您将预览div 的颜色设置为与发生事件的li 元素关联的颜色。在mouseleave 上,您可以将其设置回原始颜色。
    3. 对于大多数浏览器来说应该不是问题。

    这是您的 fiddle 的修改版本,展示了所需的行为。

    【讨论】:

    • 不错。我是否还必须使用 jquery 或 jscript 来实现预设?所以基本上当按下当前按钮(而不是仅仅悬停)时,我希望 div 元素将其当前颜色替换为属于相关预设的颜色。
    • 使用 CSS 并非不可能,但我更喜欢使用 JavaScript 添加 mouseentermouseleave。使用 jQuery 不是必需的,但它确实有助于提高浏览器的兼容性。
    • 添加了一个小提琴来演示一种可能的方法
    • 啊,我觉得有点误会。非常感谢您的演示,但我指的是能够在按下按钮时永久设置颜色变化(所以当我按下绿色按钮时,框永久保持绿色)。
    • 那更简单。只需使用单击事件而不是 mouseenter。
    猜你喜欢
    • 1970-01-01
    • 2018-09-16
    • 2020-08-08
    • 2014-07-01
    • 2012-10-27
    • 2021-11-07
    • 2022-12-31
    • 1970-01-01
    • 2019-12-12
    相关资源
    最近更新 更多