Native JS-Drag-and-Drop-Funktion zum Erstellen eines Slider-Beispielcodes

Native JS-Drag-and-Drop-Funktion zum Erstellen eines Slider-Beispielcodes

Drag & Drop ist eine gängige Funktion im Front-End, und viele Effekte nutzen die Drag & Drop-Funktion von js. Die Kernfunktion des Schiebereglers besteht darin, den Schieberegler mithilfe von js zu ziehen, um die Position zu ändern. Ein vollständiger Slider umfasst Slider, Slide-Trace, Slider, Text und weitere Elemente. Schreiben Sie zunächst den HTML-Code wie unten gezeigt:

<div class="bar_wrap" id="wrap"><!--Äußeres Hüllelement-->
 <div class="bar_container"><!--Schieberegler-->
  <div class="bar_into"></div><!--Folienspuren-->
 </div>
 <div class="bar_drag"><!--Schieberegler-->
  <div class="bar_text"></div><!--Text-->
 </div>
</div>

Fügen Sie dann jedem Element CSS-Stile hinzu, um den folgenden Effekt zu erzielen:

Als nächstes vervollständigen Sie den JS-Code Schritt für Schritt durch die Analysefunktion.

1. Holen Sie sich jedes Element des Schiebereglers. Der Code lautet wie folgt:

//Das äußere umschließende Element abrufen var eBarWrap = document.getElementById('wrap');
 //Den Schieberegler abrufen var eBarCon = eBarWrap.getElementsByClassName('bar_container')[0];
 //Gleitendes Spurelement abrufen var eBarInto = eBarWrap.getElementsByClassName('bar_into')[0];
 //Den Schieberegler abrufen var eBarDrag = eBarWrap.getElementsByClassName('bar_drag')[0];
 //Textelement abrufen var eBarText = eBarWrap.getElementsByClassName('bar_text')[0];

2. Holen Sie sich den maximalen Schiebewert. Da der Schieberegler nur innerhalb der Schiebeleiste gleiten kann, muss die maximale Schiebeposition begrenzt werden. Die Position des DOM-Elements wird von der linken Seite des Elements aus berechnet, daher sollte der Maximalwert der Breite des Schiebereglers entsprechen – der Breite des Schiebereglers, wie unten gezeigt:

//Maximale Position abrufen var nMax = eBarCon.offsetWidth - eBarDrag.offsetWidth;

3. Binden Sie die Mausklick-Ereignisfunktion an den Schieberegler, um die Funktion zum Ziehen des Schiebereglers zu realisieren. Der Code lautet wie folgt:

 //Slider fügt Drag-Ereignis hinzu eBarDrag.addEventListener('mousedown',function(event){
  
 });

3.1 Um die Position des Schiebereglers zu erhalten, müssen Sie den Schieberegler ziehen. Sie müssen zunächst die ursprüngliche Position des Schiebereglers kennen, bevor Sie den Schieberegler entsprechend der Mausbewegung ziehen können. Ein Ereignisobjekt wird an die an den Schieberegler gebundene Ereignisfunktion übergeben. Dieses Ereignisobjekt stellt das Instanzobjekt des aktuellen Ereignisses dar und enthält Informationen zum aktuellen Ereignis. Wie unten dargestellt:

//Slider fügt Drag-Ereignis hinzu eBarDrag.addEventListener('mousedown',function(event){
  //Klickposition der Maus initialisieren, um mit dem Ziehen zu beginnen var nInitX = event.clientX;
  //Schiebereglerposition initialisieren var nInitLeft = this.offsetLeft;
 });

3.2 Der Schieberegler bewegt sich mit der Maus. Wenn Sie die Gleitspur und den Textwert ändern, drücken Sie mit der Maus auf den Schieberegler und bewegen Sie dann die Maus, damit sich der Schieberegler mit der Maus bewegt. Da es im Allgemeinen jedoch nicht möglich ist, die Maus nur auf dem Schieberegler zu bewegen, ist es notwendig, das Mausbewegungsereignis an die Seite zu binden, wie unten gezeigt:

//Slider fügt Drag-Ereignis hinzu eBarDrag.addEventListener('mousedown',function(event){
  /*…*/

  //Seite bindet Mausbewegungsereignis document.onmousemove = event=>{
   //Das Standardverhalten beim Bewegen der Maus abbrechen, um die Auswahl anderer Elemente oder von Text zu vermeiden event.preventDefault();
   //Holen Sie sich die Position, zu der der Schieberegler nach der Mausbewegung bewegt werden soll. let nX = event.clientX - nInitX + nInitLeft;
   //Begrenzung der maximalen Bewegungsposition des Schiebereglers if(nX>=nMax){
    nX = nMax;
   }
   //Begrenzung der minimalen Bewegungsposition des Schiebereglers if (nX <= 0) {
    nX = 0;
   }
   //Ändere die Position des Schiebereglers (da die Pfeilfunktion verwendet wird, zeigt diese immer noch auf den Schieberegler)
   dieser.Stil.links = nX + 'px';
   //Ändern Sie die Breite der Gleitspur eBarInto.style.width = nX + this.offsetWidth/2 + 'px';
   //Den Textwert ändern eBarText.innerHTML = Math.ceil(nX/nMax*100)/10;
  };
 });

3.3 Beim Loslassen der Maus wird die Position des Schiebereglers fixiert. Beim Loslassen der Maus wird der Schieberegler an der aktuellen Position fixiert und die Gleitspur und der Textwert wurden gemeinsam geändert.

//Slider fügt Drag-Ereignis hinzu eBarDrag.addEventListener('mousedown',function(event){
  /*…*/

  //Mausbindungsereignis freigeben und alle Ereignisse auf der Seite abbrechen document.onmouseup = function(event){
   Dokument.onmousemove = null;
   Dokument.onmouseup = null;
  }
 });

Die Mausklick-Ereignisfunktion ist abgeschlossen. Der Stil des Schiebereglers kann über CSS erreicht werden, aber der Standardtextwert ist leer, was nicht sinnvoll ist. Daher müssen Sie eine weitere Codezeile hinzufügen, um den Standardwert des Textelements auf 0 zu setzen, wie unten gezeigt:

//Den Standardwert ändern eBarText.innerHTML = 0;

4. Fügen Sie dem Schieberegler ein Klickereignis hinzu. Wenn Sie auf eine andere Stelle des Schiebereglers als auf den Schieberegler klicken, sollte der Schieberegler direkt an die Stelle gleiten, an der die Maus geklickt hat. Um diese Funktion zu implementieren, müssen Sie dem Schieberegler ein Klickereignis hinzufügen. Der Code lautet wie folgt:

//Schieberegler fügt Klickereignis hinzu eBarCon.addEventListener('click',function(event){
  //Schiebereglerposition festlegen var nLeft = this.offsetLeft;
  //Holen Sie sich das positionierte übergeordnete Element var eParent = this.offsetParent;
  //Durchlaufe alle positionierten übergeordneten Elemente while(eParent){
   //Addieren Sie den OffsetLeft-Wert des übergeordneten Elements, um den Abstand zwischen dem Schieberegler und der linken Seite der Seite genau zu bestimmen. nLeft += eParent.offsetLeft;
   //Holen Sie sich das positionierte übergeordnete Element wieder außerhalb des übergeordneten Elements eParent = eParent.offsetParent;
  }
  //Schiebereglerposition berechnen var nX = event.clientX - nLeft;
  //Die Position des Schiebereglers ändern eBarDrag.style.left = nX + 'px';
  //Ändern Sie die Breite der Gleitspur eBarInto.style.width = nX + eBarDrag.offsetWidth/2 + 'px';
  //Ändern Sie den Textwert eBarText.innerHTML = Math.ceil(nX/nMax*100)/10
 });

Dies ist das Ende des Artikels über das Tutorial zum Erstellen eines Sliders mit der nativen JS-Drag-and-Drop-Funktion. Weitere Informationen zum Erstellen eines Sliders mit der JS-Drag-and-Drop-Funktion finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Verwenden Sie Javascript, um ein Sliding-Nav-Navigations-Plugin mit Gleitbalkeneffekt zu entwickeln
  • Beispiel für die Beurteilung des horizontalen und vertikalen Bildschirms durch js und das Verbot der Browser-Schiebeleiste
  • js realisiert horizontale und vertikale Slider

<<:  15 Vim-Kurzreferenztabellen, die Ihnen helfen, Ihre Effizienz um das N-fache zu steigern

>>:  So lösen Sie das Problem, das Root-Passwort von Mysql auf dem Mac zu vergessen

Artikel empfehlen

So verwenden Sie Docker Compose zum Erstellen eines FastDFS-Dateiservers

Im vorherigen Artikel wurde ein ausführliches Bei...

Eine kurze Diskussion über React Native APP-Updates

Inhaltsverzeichnis App-Update-Prozess Grobes Flus...

Vier praktische Tipps für JavaScript-String-Operationen

Inhaltsverzeichnis Vorwort 1. Eine Zeichenfolge t...

Python schreibt die Ausgabe in den CSV-Vorgang

Wie unten dargestellt: def test_write(selbst): Fe...

Lösungen für Websites mit hohem Datenverkehr

Erstens: Stellen Sie zunächst sicher, dass die Ser...

Detaillierte Erklärung des CSS3-Rotationswürfelproblems

3D-Koordinatenkonzept Wenn sich ein Element dreht...

IIS7 IIS8 http springt automatisch zu HTTPS (Port 80 springt zu Port 443)

IIS7 muss bestätigen, ob das pseudostatische Modu...

Detaillierte Erklärung des MySQL-Datenbankparadigmas

Vorwort: Ich habe oft von Datenbankparadigmen geh...

Tutorial zur Installation einer MySQL-ZIP-Datei

In diesem Artikel wird die spezifische Methode zu...

Detaillierte Beschreibung der HTML-Tabellenrahmensteuerung

Nur den oberen Rand anzeigen <table frame=above...

So erhalten Sie den Maximal- oder Minimalwert einer Zeile in SQL

Originaldaten und Zieldaten SQL-Anweisungen imple...

Grafisches Tutorial zur Installation und Konfiguration der MySQL-Version 5.7.15

Dieser Artikel enthält ein ausführliches Tutorial...

Datenbankabfrageoptimierung: Unterabfrageoptimierung

1. Fall Nehmen Sie alle Mitarbeiter, die nicht Fi...