Maison > interface Web > tutoriel CSS > Comment créer une zone de sélection qui affiche les options au survol ?

Comment créer une zone de sélection qui affiche les options au survol ?

DDD
Libérer: 2024-11-02 09:17:02
original
239 Les gens l'ont consulté

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

Accès aux options de la zone de sélection en survol

La question posée est de savoir comment créer une zone de sélection où les options deviennent visibles au survol, plutôt que en cliquant.

Solution 1 : JavaScript et CSS

Cette solution utilise JavaScript et CSS pour afficher les options au survol :

<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>
Copier après la connexion

Solution 2 : Plugin jQuery

Une approche alternative consiste à utiliser un plugin jQuery pour simplifier le processus :

<code class="javascript">$(function() {
    $('select.makePlain').selectUl();
});</code>
Copier après la connexion

CSS et HTML

Le CSS et le HTML utilisés dans la démo :

<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>
Copier après la connexion
<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>
Copier après la connexion

Personnalisation

Le plugin peut être facilement personnalisé avec des fonctionnalités supplémentaires telles que le texte dynamique , descriptions et plus encore.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal