Inhaltsverzeichnis
1. Erstellen Sie statische Effekte
Heim Web-Frontend js-Tutorial Editierbarer Dropdown-Box-Implementierungscode basierend auf jquery_jquery

Editierbarer Dropdown-Box-Implementierungscode basierend auf jquery_jquery

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

Das Prinzip besteht darin, einer UL ein Textfeld hinzuzufügen, um ein Dropdown-Feld zu simulieren, und eine Schriftart zu verwenden, um eine Dropdown-Schaltfläche zu simulieren.

1. Erstellen Sie statische Effekte

Verwenden Sie zunächst CSS und HTML, damit es so aussieht, wie es sollte. Hier sind die beiden Ich verwende Schriftarten, die Sie selbst auf der icomoon-Website erstellen können. Der Vorteil der Verwendung von Schriftarten besteht darin, dass die Positionierung des Eingabefelds sehr praktisch ist und Sie auch Größe, Farbe usw. steuern können. Der einzige Nachteil besteht darin, dass IE6 und IE7 diese Schriftart nicht anzeigen können, da sie den Selektor :before nicht unterstützen , aber es kann durch einige andere Methoden erreicht werden. Sie können es selbst versuchen. Unten ist der HTML-Code

<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>
Nach dem Login kopieren

1. Das Tag enthält Stil und Klasse. Dieser Stil ist ein erforderliches Attribut und muss
haben 2. Der äußerste Teil wird mit span umschlossen und dann mit einem Inline-Block-Attribut versehen. Der Grund, warum Inline-Elemente verwendet werden, ist die Vereinfachung zukünftiger Layouts. Es ist jedoch auch möglich, sie durch Blockelemente zu ersetzen wird von float begleitet Floating und andere Stile sind schwieriger zu kontrollieren
3. Ficomoon icon-angle-bottom definiert die Schriftart
4. Die Attributposition von span ist relativ. Ich habe vor, die UL-Positionierung zu verwenden. Die Position von UL ist in Zukunft absolut. codiert
5. Ich habe dem Inhalt in li ein a-Tag hinzugefügt. Das a-Tag hat eine :hover-Pseudoklasse, sodass ich weniger Spezialeffekte beim Verschieben schreiben kann bis zum Inhalt, um den Stil zu ändern.

Unten ist der CSS-Code:

@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}
Nach dem Login kopieren

Combox_border und andere Stile können hier angepasst werden, und CSS3-Stile können hinzugefügt werden, um sie zu verschönern. Ich habe hier einen einfachen Stil erstellt.

2. Erstellen Sie JS-Spezialeffekte

Als ich JS machte, stieß ich auf ein seltsames Problem, das heißt, in keinem Browser wurde ein Fehler gemeldet, aber in IE6 wurde ein Fehler wegen nicht festgelegter Objekteigenschaften angezeigt. Schließlich fand ich heraus, dass dies daran lag des Codierungsproblems der js-Datei, nicht UTF-8, ändern Sie einfach die Codierung.

Das erste ist ein JQuery-Plug-In-Format

(function($){
 $.fn.combox = function(options) {
 
 };
})(jQuery);
Nach dem Login kopieren

Dann fügen Sie Standardparameter hinzu

var defaults = { 
 borderCss: "combox_border", 
 inputCss: "combox_input", 
 buttonCss: "combox_button", 
 selectCss: "combox_select",
 datas:[]
};
var options = $.extend(defaults, options);
Nach dem Login kopieren

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

Dann gibt es noch eine Rendering-Methode

this.each(function() {
var _this = $(this);
_this = _initBorder(_this);//初始化外框CSS IE6中需要有返回值
_this = _initInput(_this);//初始化输入框
_initSelect(_this);//初始化下拉列表
});
Nach dem Login kopieren

Generieren Sie dynamisch Eingabefelder, Schaltflächen, Dropdown-Felder, fügen Sie Stile und Zeiten hinzu. Ich habe die drei Renderings jeweils in drei Funktionen eingeteilt, um es klarer zu machen

       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;
 }
Nach dem Login kopieren

Ich habe den Parametern in den drei Funktionen ein $-Symbol hinzugefügt, damit ich weiß, dass es sich um ein JQuery-Objekt handelt. Bei diesen Funktionen gibt es keine technischen Schwierigkeiten. Sie können den Code jederzeit entsprechend Ihren unterschiedlichen Anforderungen ändern, was sehr einfach ist ändern.

Das Folgende ist das aufrufende Plug-in:

<script type="text/javascript">
$(document).ready(function() {
 $('#combox').combox({datas:['选项一','选项二','选项三']});
})
</script>
</head>
<body>
  <span id="combox"></span>
</body>
</html>
Nach dem Login kopieren

Es ist nur ein Satz erforderlich, was sehr praktisch ist.

Demo-Demo: http://demo.jb51.net/js/2014/combox_jquery/

Demo-Download: http://www.jb51.net/jiaoben/199034.html

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie implementiert man mit Vue eine bearbeitbare Datentabelle? Wie implementiert man mit Vue eine bearbeitbare Datentabelle? Jun 25, 2023 pm 06:20 PM

Mit der kontinuierlichen Weiterentwicklung der Front-End-Technologie sind Datentabellen zu einem wichtigen Werkzeug für die Unternehmensverwaltung und Datenanzeige geworden. In der täglichen Entwicklung ist es manchmal erforderlich, Daten in der Datentabelle zu ändern oder hinzuzufügen. Zu diesem Zeitpunkt ist es erforderlich, eine bearbeitbare Datentabelle zu implementieren. In diesem Artikel wird erläutert, wie Sie mit Vue bearbeitbare Datentabellen implementieren. 1. Implementierungsideen Bei der Implementierung der bearbeitbaren Datentabellenfunktion müssen wir die folgenden Punkte berücksichtigen: Datenpräsentation: Rendern Sie die Daten zur Anzeige und Bearbeitung in der Tabelle. Tabellenbearbeitung: Daten in der Tabelle bearbeiten.

So implementieren Sie ein Dropdown-Feld mit Mehrfachauswahl in Vue So implementieren Sie ein Dropdown-Feld mit Mehrfachauswahl in Vue Nov 07, 2023 pm 02:09 PM

So implementieren Sie ein Dropdown-Feld mit Mehrfachauswahl in Vue. In der Vue-Entwicklung ist das Dropdown-Feld eine der häufigsten Formularkomponenten. Normalerweise verwenden wir Radio-Dropdown-Felder, um eine Option auszuwählen. Manchmal müssen wir jedoch ein Dropdown-Feld mit Mehrfachauswahl implementieren, damit Benutzer mehrere Optionen gleichzeitig auswählen können. In diesem Artikel stellen wir vor, wie man ein Mehrfachauswahl-Dropdown-Feld in Vue implementiert, und stellen spezifische Codebeispiele bereit. 1. Verwenden Sie die ElementUI-Komponentenbibliothek. ElementUI ist eine auf Vue basierende Desktop-Komponentenbibliothek, die eine umfangreiche Benutzeroberfläche bietet.

So entwickeln Sie mit Layui ein bearbeitbares System zur Verwaltung persönlicher Termine So entwickeln Sie mit Layui ein bearbeitbares System zur Verwaltung persönlicher Termine Oct 25, 2023 am 11:42 AM

So entwickeln Sie mit Layui ein bearbeitbares System zur Verwaltung persönlicher Termine. In den letzten Jahren hat die Verwaltung persönlicher Termine mit der rasanten Entwicklung der Informationstechnologie und dem beschleunigten Tempo des Lebens immer mehr an Bedeutung gewonnen. Damit Menschen ihre Zeit und Aufgaben besser verwalten können, können wir Layui verwenden, ein auf JavaScript basierendes Front-End-UI-Framework. Es bietet umfangreiche Komponenten und einen prägnanten Stil und eignet sich sehr gut für die Entwicklung persönlicher Zeitplanverwaltungssysteme. 1. Vorbereitung der Umgebung Zuerst müssen wir die Entwicklungsumgebung vorbereiten. Stellen Sie sicher, dass Sie

Lösung für das Scroll-Problem im mobilen Dropdown-Feld von Vue Lösung für das Scroll-Problem im mobilen Dropdown-Feld von Vue Jun 29, 2023 pm 11:49 PM

So lösen Sie das Problem des Scrollens mobiler Dropdown-Boxen in der Vue-Entwicklung Mit der Popularität mobiler Endgeräte werden immer mehr Webanwendungen für mobile Geräte entwickelt. Bei der mobilen Entwicklung stoßen wir häufig auf ein Problem, nämlich das Scrollproblem des Dropdown-Felds auf mobilen Geräten. Auf dem herkömmlichen PC wird das Scrollen des Dropdown-Felds durch die Standard-Bildlaufleiste des Browsers gesteuert. Auf mobilen Geräten gibt es jedoch keine Bildlaufleiste, sodass das Dropdown-Feld nicht gescrollt werden kann. Dies kann dazu führen, dass der Benutzer in einigen Szenarien nicht alle Optionen im Dropdown-Feld auswählen kann.

Implementierungsmethode einer bearbeitbaren Tabelle im Vue-Dokument Implementierungsmethode einer bearbeitbaren Tabelle im Vue-Dokument Jun 20, 2023 pm 06:43 PM

Vue.js ist derzeit eines der beliebtesten Front-End-Frameworks. Es verwendet einen datengesteuerten Ansatz zum Erstellen von Benutzeroberflächen und weist die Merkmale einer bidirektionalen Datenbindung und Komponentisierung auf. In der Vue.js-Dokumentation wird eine Methode zum Implementieren einer bearbeitbaren Tabelle bereitgestellt. In diesem Artikel werden die spezifischen Implementierungsschritte dieser Methode vorgestellt. Um Daten vorzubereiten, müssen Sie zunächst einen Datensatz vorbereiten. Hier nehmen wir Studenteninformationen als Beispiel. Das Datenformat kann ein Array sein und jedes Element enthält Attribute wie Name, Geschlecht, Alter usw. Schüler:[{name:'Xiao Ming

Wie verwende ich JavaScript, um einen Dropdown-Box-Verknüpfungseffekt zu erzielen? Wie verwende ich JavaScript, um einen Dropdown-Box-Verknüpfungseffekt zu erzielen? Oct 20, 2023 pm 03:57 PM

Wie verwende ich JavaScript, um einen Dropdown-Box-Verknüpfungseffekt zu erzielen? Bei der Entwicklung von Webseiten ist die Verknüpfung von Dropdown-Boxen ein häufiger interaktiver Effekt. Der Optionsinhalt eines anderen Dropdown-Felds wird dynamisch geändert, indem eine Option in einem Dropdown-Feld ausgewählt wird, wodurch eine Verknüpfung zwischen beiden hergestellt wird. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript den Verknüpfungseffekt von Dropdown-Feldern erzielen und spezifische Codebeispiele anhängen. HTML-Struktur Zuerst müssen wir zwei Dropdown-Felder erstellen und ihnen ID-Attribute hinzufügen, damit JavaScr

So entwickeln Sie mit Layui einen E-Book-Reader, der die Bearbeitbarkeit unterstützt So entwickeln Sie mit Layui einen E-Book-Reader, der die Bearbeitbarkeit unterstützt Oct 24, 2023 am 08:08 AM

Überblick über die Verwendung von Layui zum Entwickeln eines bearbeitbaren E-Book-Readers: Layui ist ein benutzerfreundliches und leistungsstarkes Front-End-Framework, das einen umfangreichen Satz an UI-Komponenten und Entwicklungstools bereitstellt, sodass Entwickler schnell schöne und voll funktionsfähige Inhalte erstellen können Webanwendung. In diesem Artikel wird vorgestellt, wie Sie mit dem Layui-Framework einen E-Book-Reader entwickeln, der die Bearbeitbarkeit unterstützt und es Benutzern ermöglicht, Vorgänge wie Hervorheben, Markieren und Notizen im E-Book durchzuführen. Schritt 1: Projektvorbereitung Zunächst müssen wir eine grundlegende Projektstruktur vorbereiten. Erstellen Sie eine

So implementieren Sie bearbeitbare Tabellenfunktionen mit Layui So implementieren Sie bearbeitbare Tabellenfunktionen mit Layui Oct 25, 2023 am 11:27 AM

So verwenden Sie Layui zum Implementieren bearbeitbarer Tabellenfunktionen. Layui ist ein klassisches und prägnantes Front-End-UI-Framework mit umfangreichen Komponenten und leistungsstarken Funktionen. Während des Entwicklungsprozesses mit Layui müssen wir möglicherweise bearbeitbare Tabellenfunktionen implementieren. In diesem Artikel wird erläutert, wie Sie die Tabellen- und Formularkomponente von Layui verwenden, um bearbeitbare Tabellenfunktionen zu implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Stellen Sie die Layui-Bibliothek vor. Führen Sie zunächst die relevanten Dateien der Layui-Bibliothek in das Projekt ein. Kann wählen

See all articles