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

MySQL-Gruppierungsabfragen und Aggregatfunktionen

Überblick Ich glaube, dass wir häufig auf solche ...

Vue3 erhält die aktuelle Routingadresse

Richtige Antwort Verwenden von useRouter : // Rou...

MySQL ändert die Standard-Engine und Zeichensatzdetails

Inhaltsverzeichnis 1. Datenbankmodul 1.1 Datenban...

So gestalten Sie die Homepage von Tudou.com

<br />Ich arbeite seit mehreren Jahren im Fr...

Linux-Methodenbeispiel zum Anzeigen aller Informationen des Prozesses

Auf dem Server läuft ein Taskprozess. Wenn wir ih...

Implementierung der Benutzerregistrierungsfunktion mit js

In diesem Artikelbeispiel wird der spezifische Co...

So implementieren Sie die Ein-Klick-Bereitstellung von NFS unter Linux

Serverinformationen Verwaltungsserver: m01 172.16...

Einige Tipps zum Website-Design

Tatsächlich haben wir in letzter Zeit viel über W...

So löschen Sie schwebenden Beispielcode in CSS

Überblick Das Rahmendiagramm dieses Artikels ist ...

IIS 7.5 verwendet das URL-Rewrite-Modul, um eine Webseitenumleitung zu erreichen

Wir alle wissen, dass Apache in der Konfiguration...

Implementierung integrierter Module und benutzerdefinierter Module in Node.js

1. Commonjs Commonjs ist ein benutzerdefiniertes ...

So verwenden Sie Zeit als Beurteilungsbedingung in MySQL

Hintergrund: Während des Entwicklungsprozesses mü...

Nginx-Stream-Konfigurationsproxy (Nginx TCP/UDP-Lastausgleich)

Auftakt Wir alle wissen, dass nginx ein hervorrag...