首页  >  文章  >  web前端  >  如何创建一个在悬停时显示选项的选择框?

如何创建一个在悬停时显示选项的选择框?

DDD
DDD原创
2024-11-02 09:17:02157浏览

How to Create a Select Box That Shows Options on Hover?

在悬停时访问选择框选项

提出的问题是如何创建一个选择框,其中选项在悬停时可见,而不是

解决方案 1:JavaScript 和 CSS

此解决方案利用 JavaScript 和 CSS 在悬停时显示选项:

<code class="javascript">$('#selectUl li:not(":first")').addClass('unselected');
// Hides 'unselected' elements in the ul.

$('#selectUl').hover(
    function(){
        // Mouse-over
        $(this).find('li').click(
            function(){
                $('.unselected').removeClass('unselected');
                // Removes the 'unselected' style

                $(this).siblings('li').addClass('unselected');
                // Adds 'unselected' style to other li elements

                var index = $(this).index();
                $('select option:selected').removeAttr('selected');
                // Deselects previous selection

                $('select[name=size]')
                    .find('option:eq(' + index + ')')
                    .attr('selected',true);
                // Assuming a 1:1 relationship between li and option elements
            });
    },
    function(){
        // Mouseout or mouseleave
    });</code>

解决方案 2:jQuery 插件

另一种方法是使用 jQuery 插件来简化流程:

<code class="javascript">$(function() {
    $('select.makePlain').selectUl();
});</code>

CSS 和 HTML

演示中使用的 CSS 和 HTML:

<code class="html"><select name="size" class="makePlain">
    <option value="small">Small</option>
    <option value="medium">Medium</option>
    <option value="large">Large</option>
</select>

<ul id="selectUl">
    <li>small</li>
    <li>medium</li>
    <li>large</li>
</ul></code>
<code class="css">select {
    opacity: 0.5;
}
ul {
    width: 8em;
    line-height: 2em;
}

li {
    display: list-item;
    width: 100%;
    height: 2em;
    border:1px solid #ccc;
    border-top-width: 0;
    text-indent: 1em;
    background-color: #f90;
}
li:first-child {
    border-top-width: 1px;
}

li.unselected {
    display: none;
    background-color: #fff;
}
ul#selectUl:hover li.unselected {
    background-color: #fff;
}
ul#selectUl:hover li,
ul#selectUl:hover li.unselected {
    display: list-item;
}
ul#selectUl:hover li {
    background-color: #fc0;
}
ul#selectUl li:hover,
ul#selectUl li.unselected:hover {
    background-color: #f90;
}</code>

自定义

可以使用动态文本等附加功能轻松自定义插件、描述等等。

以上是如何创建一个在悬停时显示选项的选择框?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn