Table des matières
1. Créer des effets statiques
Maison interface Web js tutoriel Code d'implémentation de la liste déroulante modifiable basé sur jquery_jquery

Code d'implémentation de la liste déroulante modifiable basé sur jquery_jquery

May 16, 2016 pm 04:40 PM
下拉框 可编辑

Le principe est d'ajouter une zone de texte à un ul pour simuler une zone déroulante, et d'utiliser une police pour simuler un bouton déroulant.

1. Créer des effets statiques

Utilisez d'abord CSS et HTML pour que cela ressemble à ce qu'il devrait être. Voici les deux polices que j'utilise, qui peuvent être créées par vous-même sur le site icomoon. L'avantage d'utiliser des polices est qu'il est très pratique de positionner la zone de saisie, et vous pouvez également contrôler la taille, la couleur, etc. Le seul inconvénient est que IE6 et IE7 ne peuvent pas afficher cette police car ils ne prennent pas en charge le sélecteur :before. , mais cela peut être réalisé par d'autres méthodes. Vous pouvez l'essayer vous-même. Ci-dessous le code html

<span style="display:inline-block;position:relative" class="combox_border">
 <input type="text" class="combox_input"/><font class="ficomoon icon-angle-bottom combox_button" style="display:inline-block"></font>
 <ul style="position:absolute;top:29px;left:-1px" class="combox_select">
 <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >选项一</a></li>
 <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >选项二</a></li>
 <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >选项三</a></li>
 <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >选项四</a></li>
 </ul>
</span>
Copier après la connexion

1. Il y a du style et de la classe dans la balise. Ce style est un attribut obligatoire et doit avoir
. 2. La partie la plus externe est enveloppée avec span, puis dotée d'un attribut inline-block. La raison pour laquelle les éléments en ligne sont utilisés est pour la commodité de la mise en page future. Il est également possible de les remplacer par des éléments de bloc, mais souvent des éléments de bloc. sera accompagné de float Flottant et d'autres styles sont plus difficiles à contrôler
3. Ficomoon icon-angle-bottom définit la police
4. La position de l'attribut span est relative. Je prévois d'utiliser le positionnement ul pour simuler la liste déroulante. À l'avenir, top pourra obtenir le réglage de la hauteur selon jquery. codé
5. J'ai ajouté une balise a au contenu de li. Je veux juste être paresseux ici. La balise a a une pseudo-classe :hover peut modifier le CSS, donc je peux écrire moins d'effets spéciaux en la déplaçant. au contenu de changer le style.

Ci-dessous le code CSS :

@font-face {
 font-family: 'icomoon';
 src:url('fonts/icomoon.eot&#63;-fl11l');
 src:url('fonts/icomoon.eot&#63;#iefix-fl11l') format('embedded-opentype'),
 url('fonts/icomoon.woff&#63;-fl11l') format('woff'),
 url('fonts/icomoon.ttf&#63;-fl11l') format('truetype'),
 url('fonts/icomoon.svg&#63;-fl11l#icomoon') format('svg');
 font-weight: normal;
 font-style: normal;
}
.ficomoon{font-family:'icomoon';}
.icon-angle-top:before {content: "\f102"}.icon-angle-bottom:before {content: "\f103"}
/*下面的可根据自己的实际情况做修改*/
.combox_border{border:1px solid #c2c2c2;height:28px;width:245px}
.combox_input{border:0;line-height:25px;height:25px;padding-left: 5px;width:85%;vertical-align: middle;}
.combox_button{width:12%;text-align:center;vertical-align: middle;cursor:pointer;border-left:1px solid #c2c2c2}
.combox_select{border:1px solid #c2c2c2;border-top:0;width:100%}
.combox_select li{overflow:hidden;height:30px;line-height:30px;cursor:pointer;}
.combox_select a {display: block;line-height: 28px;padding: 0 8px;text-decoration: none;color: #666;}
.combox_select a:hover {text-decoration: none;background:#f5f5f5}
Copier après la connexion

Combox_border et d'autres styles ici peuvent être personnalisés, et des styles CSS3 peuvent être ajoutés pour les embellir. J'ai créé un style simple ici.

2. Créer des effets spéciaux JS

Quand je travaillais sur JS, j'ai rencontré un problème étrange, c'est-à-dire qu'aucune erreur ne serait signalée dans aucun navigateur, mais dans IE6, cela provoquerait une erreur de propriétés d'objet non définies. Finalement, j'ai découvert que c'était parce que. du problème d'encodage du fichier js, pas UTF-8, changez simplement l'encodage.

Le premier est un format de plug-in jquery

(function($){
 $.fn.combox = function(options) {
 
 };
})(jQuery);
Copier après la connexion

Puis ajoutez les paramètres par défaut

var defaults = { 
 borderCss: "combox_border", 
 inputCss: "combox_input", 
 buttonCss: "combox_button", 
 selectCss: "combox_select",
 datas:[]
};
var options = $.extend(defaults, options);
Copier après la connexion

borderCss 最外面包裹的样式,就是上面的span
inputCss 输入框的样式
buttonCss 按钮的样式,就是
selectCss 下拉列表的样式
datas 下拉列表中的内容

Ensuite, il existe une méthode de rendu

this.each(function() {
var _this = $(this);
_this = _initBorder(_this);//初始化外框CSS IE6中需要有返回值
_this = _initInput(_this);//初始化输入框
_initSelect(_this);//初始化下拉列表
});
Copier après la connexion

Générez dynamiquement des zones de saisie, des boutons, des listes déroulantes, attachez des styles et des heures. J'ai mis les trois rendus dans trois fonctions respectivement pour que ce soit plus clair

       function _initBorder($border) {//初始化外框CSS
 $border.css({'display':'inline-block', 'position':'relative'}).addClass(options.borderCss);
 return $border;
 }
 
 function _initInput($border){//初始化输入框
 $border.append('<input type="text" class="'+options.inputCss+'"/>');
 $border.append('<font class="ficomoon icon-angle-bottom '+options.buttonCss+'" style="display:inline-block"></font>');
 //绑定下拉特效
 $border.delegate('font', 'click', function() {
 var $ul = $border.children('ul');
 if($ul.css('display') == 'none') {
 $ul.slideDown('fast');
 $(this).removeClass('icon-angle-bottom').addClass('icon-angle-top');
 }else {
 $ul.slideUp('fast');
 $(this).removeClass('icon-angle-top').addClass('icon-angle-bottom');
 } 
 });
 return $border;//IE6需要返回值
 }
 
 function _initSelect($border) {//初始化下拉列表
 $border.append('<ul style="position:absolute;left:-1px;display:none" class="'+options.selectCss+'">');
 var $ul = $border.children('ul');
 $ul.css('top',$border.height()+1);
 var length = options.datas.length;
 for(var i=0; i<length ;i++)
 $ul.append('<li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >'+options.datas[i]+'</a></li>');
 $ul.delegate('li', 'click', function() {
 $border.children(':text').val($(this).text());
 $ul.hide();
 $border.children('font').removeClass('icon-angle-top').addClass('icon-angle-bottom');//确定的时候要将下拉的icon改变
 });
 return $border;
 }
Copier après la connexion

J'ai ajouté un symbole $ aux paramètres des trois fonctions pour que je puisse savoir qu'il s'agit d'un objet jquery. Il n'y a aucune difficulté technique dans ces fonctions. Elles sont toutes très courantes et logiques. Vous pouvez également modifier le code à tout moment en fonction de vos différents besoins. Le plug-in ne comporte qu'un total de 50 lignes, ce qui est très simple. modifier.

Ce qui suit est le plug-in appelant :

<script type="text/javascript">
$(document).ready(function() {
 $('#combox').combox({datas:['选项一','选项二','选项三']});
})
</script>
</head>
<body>
  <span id="combox"></span>
</body>
</html>
Copier après la connexion

Cela ne prend qu'une seule phrase, ce qui est très pratique.

démo démo : http://demo.jb51.net/js/2014/combox_jquery/

Téléchargement de la démo : http://www.jb51.net/jiaoben/199034.html

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser Vue pour implémenter une table de données modifiable ? Comment utiliser Vue pour implémenter une table de données modifiable ? Jun 25, 2023 pm 06:20 PM

Avec le développement continu de la technologie frontale, les tableaux de données sont devenus l'un des outils importants pour la gestion d'entreprise et l'affichage des données. Dans le développement quotidien, il est parfois nécessaire de modifier ou d'ajouter des données dans le tableau de données. A ce stade, il est nécessaire d'implémenter un tableau de données modifiable. Cet article explique comment utiliser Vue pour implémenter des tables de données modifiables. 1. Idées d'implémentation Lors de l'implémentation de la fonction de tableau de données modifiable, nous devons prendre en compte les points suivants : Présentation des données : Restituez les données dans le tableau pour l'affichage et l'édition. Modification du tableau : modifiez les données du tableau.

Comment implémenter une liste déroulante à sélection multiple dans Vue Comment implémenter une liste déroulante à sélection multiple dans Vue Nov 07, 2023 pm 02:09 PM

Comment implémenter une liste déroulante à sélection multiple dans Vue. Dans le développement de Vue, la liste déroulante est l'un des composants de formulaire courants. Normalement, nous utilisons des listes déroulantes radio pour sélectionner une option. Cependant, nous devons parfois implémenter une liste déroulante à sélection multiple afin que les utilisateurs puissent sélectionner plusieurs options en même temps. Dans cet article, nous présenterons comment implémenter une liste déroulante à sélection multiple dans Vue et fournirons des exemples de code spécifiques. 1. Utilisez la bibliothèque de composants ElementUI ElementUI est une bibliothèque de composants de bureau basée sur Vue, qui fournit une interface utilisateur riche.

Comment utiliser Layui pour développer un système de gestion d'horaires personnels modifiable Comment utiliser Layui pour développer un système de gestion d'horaires personnels modifiable Oct 25, 2023 am 11:42 AM

Comment utiliser Layui pour développer un système de gestion d'horaires personnels modifiable. Ces dernières années, avec le développement rapide des technologies de l'information et le rythme de vie accéléré des gens, la gestion des horaires personnels est devenue de plus en plus importante. Afin de permettre aux gens de mieux gérer leur temps et leurs tâches, nous pouvons utiliser Layui, un framework d'interface utilisateur frontal basé sur JavaScript. Il fournit des composants riches et un style concis, et est très adapté au développement de systèmes de gestion d'horaires personnels. 1. Préparation de l'environnement Tout d'abord, nous devons préparer l'environnement de développement. assurez-vous que vous

Solution au problème de défilement de la liste déroulante Vue mobile Solution au problème de défilement de la liste déroulante Vue mobile Jun 29, 2023 pm 11:49 PM

Comment résoudre le problème de défilement des listes déroulantes mobiles dans le développement de Vue Avec la popularité des terminaux mobiles, de plus en plus d'applications Web ont commencé à être développées pour les appareils mobiles. Dans le processus de développement mobile, nous rencontrons souvent un problème, à savoir le problème de défilement de la liste déroulante sur les appareils mobiles. Du côté des PC traditionnels, le défilement de la liste déroulante est contrôlé par la barre de défilement par défaut du navigateur, mais sur les appareils mobiles, il n'y a pas de barre de défilement, donc la liste déroulante ne peut pas défiler. Cela peut empêcher l'utilisateur de sélectionner toutes les options dans la liste déroulante dans certains scénarios.

Méthode d'implémentation de la table modifiable dans le document Vue Méthode d'implémentation de la table modifiable dans le document Vue Jun 20, 2023 pm 06:43 PM

Vue.js est actuellement l'un des frameworks front-end les plus populaires. Il utilise une approche basée sur les données pour créer des interfaces utilisateur et présente les caractéristiques d'une liaison de données bidirectionnelle et d'une création de composants. Dans la documentation Vue.js, une méthode d'implémentation d'une table modifiable est fournie. Cet article présentera les étapes d'implémentation spécifiques de cette méthode. Pour préparer des données, vous devez d’abord préparer un ensemble de données. Ici, nous prenons comme exemple les informations sur les étudiants. Le format des données peut être un tableau, chaque élément contenant des attributs tels que le nom, le sexe, l'âge, etc. étudiants :[{name:'Xiao Ming

Comment utiliser Vue et Canvas pour développer des applications graphiques vectorielles modifiables Comment utiliser Vue et Canvas pour développer des applications graphiques vectorielles modifiables Jul 19, 2023 pm 03:07 PM

Comment utiliser Vue et Canvas pour développer des applications graphiques vectorielles modifiables Introduction : Ces dernières années, les graphiques vectoriels sont devenus de plus en plus largement utilisés dans le domaine du design, et il existe de nombreux outils de conception basés sur des graphiques vectoriels tels qu'Adobe Illustrator. Dans le développement Web, nous espérons également pouvoir développer des applications graphiques vectorielles modifiables pour répondre aux besoins personnalisés des utilisateurs en matière de conception. Cet article expliquera comment utiliser Vue et Canvas pour développer des applications graphiques vectorielles modifiables et fournira des exemples de code détaillés. Préparatifs Tout d'abord, je

Comment utiliser Layui pour développer un lecteur de livre électronique prenant en charge la possibilité de modification Comment utiliser Layui pour développer un lecteur de livre électronique prenant en charge la possibilité de modification Oct 24, 2023 am 08:08 AM

Présentation de l'utilisation de Layui pour développer un lecteur de livres électroniques modifiable : Layui est un framework frontal puissant et facile à utiliser qui fournit un riche ensemble de composants d'interface utilisateur et d'outils de développement, permettant aux développeurs de créer rapidement des applications belles et entièrement fonctionnelles. application Web. Cet article expliquera comment utiliser le framework Layui pour développer un lecteur de livre électronique prenant en charge la possibilité de modification, permettant aux utilisateurs d'effectuer des opérations telles que la surbrillance, le marquage et la prise de notes dans le livre électronique. Étape 1 : Préparation du projet Tout d'abord, nous devons préparer une structure de base du projet. Créer un

Comment utiliser Layui pour implémenter des fonctions de table modifiables Comment utiliser Layui pour implémenter des fonctions de table modifiables Oct 25, 2023 am 11:27 AM

Comment utiliser Layui pour implémenter des fonctions de table modifiables Layui est un framework d'interface utilisateur frontal classique et concis avec des composants riches et des fonctions puissantes. Au cours du processus de développement utilisant Layui, nous pouvons rencontrer le besoin d'implémenter des fonctions de table modifiables. Cet article explique comment utiliser le composant table et le composant formulaire de Layui pour implémenter des fonctions de table modifiables et fournit des exemples de code spécifiques. 1. Présentez la bibliothèque Layui. Tout d'abord, introduisez les fichiers pertinents de la bibliothèque Layui dans le projet. Peut choisir

See all articles