Implementieren einer benutzerdefinierten Bildlaufleiste mit nativem JS

Implementieren einer benutzerdefinierten Bildlaufleiste mit nativem JS

In diesem Artikelbeispiel wird der spezifische JS-Code zur Implementierung einer benutzerdefinierten Bildlaufleiste zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

1. HTML-Datei

Div1 ist die Bildlaufleiste, div2 ist die Bildlaufkugel, div3 ist der Textbereichscontainer und div4 ist der Textbereich.

<div id="div">
 <div id="div1">
 <div id="div2"> </div>
 </div>
 <div id="div3">
 <div id="div4">
 <p>CSS3-Anleitung</p>
 <p>CSS3-Anleitung</p>
 <p>Einführung in CSS3</p>
 <p>CSS3-Rahmen</p>
 <p>CSS3 abgerundete Ecken</p>
 <p>CSS3-Hintergrund</p>
 <p>CSS3-Farbverläufe</p>
 <p>CSS3-Texteffekte</p>
 <p>CSS3-Schriftarten</p>
 <p>CSS3 2D-Transformationen</p>
 CSS3 3D-Transformationen
 <p>CSS3-Übergänge</p>
 <p>CSS3-Animation</p>
 <p>CSS3 Mehrere Spalten</p>
 <p>CSS3-Benutzeroberfläche</p>
 <p>CSS3-Bilder</p>
 <p>CSS3-Schaltfläche</p>
 <p>CSS3-Seitennummerierung</p>
 <p>CSS3-Boxgröße</p>
 <p>Flexible CSS3-Box</p>
 <p>CSS3-Multimediaabfragen</p>
 <p>Beispiel für eine CSS3-Multimediaabfrage</p>
 </div>
 </div>
</div>

2.css-Style-Datei

Der Container wird durch Überlauf ausgeblendet, der Textbereich absolut positioniert und dann zur Verarbeitung an js übergeben.

*{Polsterung: 0; Rand: 0;}
#div{oben:200px;links:25%;Breite: 50%;Höhe: 300px; Position: absolut; 
}
#div1{Breite: 20px; Höhe: 300px; Position: relativ; 
Hintergrund: #CCCCCC; Rahmenradius: 28px; Float: rechts; Cursor: Zeiger;}
#div1 #div2{links: -4px;Breite: 28px;Höhe: 28px;Randradius: 50%; Hintergrund: rot;
position: absolut;}

#div3{Breite: 90%; Höhe: 300px; Rahmen: 2px durchgezogen #CCCCCC;
Position: relativ; Float: links; Überlauf: versteckt;}
#div3 #div4{oben:0;links:0;Breite: 100 %; Position: absolut; Schriftfamilie: „Microsoft YaHei“;
Schriftgröße: 19px; Buchstabenabstand: 1px; Polsterung: 3px 6px;}

3.js-Skriptcode

fenster.onload = funktion(){
 var allDiv = document.getElementById('div');
 var oDiv = document.getElementById('div2');
 var aDiv = document.getElementById('div1');
 var textDiv1 = document.getElementById('div3');
 var textDiv2 = document.getElementById('div4');
 
 // Der Fortschrittsbalken wird gezogen und der Inhalt folgt dem Bewegungsereignis oDiv.onmousedown = function (ev) {
 var oEvent =ev||Ereignis;
 
 var disY =oEvent.clientY -oDiv.offsetTop;
 
 wenn (oDiv.setCapture) {
 oDiv.onmousemove = Mausbewegung;
 oDiv.onmouseup = Maus hoch;
 
 oDiv.setCapture();
 }anders{
 document.onmousemove = Mausbewegung;
 Dokument.onmouseup = Maus hoch;
 }
 
 Funktion Mausbewegung(ev){
 var oEvent =ev||Ereignis; 
 var t =oEvent.clientY -disY; 
 var bottomLine = aDiv.OffsetHeight - oDiv.OffsetHeight; 
 
 
 wenn(t < 0){
 t =0;
 }sonst wenn(t >bottomLine){
 t = unterste Zeile;
 }
 
  var Prozent =t/272;
  
 oDiv.style.top = t+'px';
 textDiv2.style.top = - (textDiv2.offsetHeight-textDiv1.offsetHeight) * Prozent + "px";
 
 };
 
 Funktion Maus nach oben () {
 dies.onmousemove =null;
 dies.onmouseup =null;
 
 wenn (oDiv.releaseCapture) {
 oDiv.releaseCapture();
 }
 };
 
 gibt false zurück;
 };
 
 // Klicken Sie auf den Fortschrittsbalken, um den Timer zu starten. Wenn der Ball das Ziel mit konstanter Geschwindigkeit erreicht, löschen Sie den Timer aDiv.onmousedown=function(ev){
 var oEvent =ev||Ereignis; 
 var divY =oEvent.clientY-allDiv.offsetTop;
 var Timer = null; var Geschwindigkeit = 10;
 
 
 Intervall löschen(Timer)
 Timer = Intervall festlegen(Funktion(){
 var Prozent=oDiv.offsetTop/272;
 
 
 wenn(oDiv.offsetTop<divY-28){
 oDiv.style.top = oDiv.offsetTop + Geschwindigkeit + 'px';
 textDiv2.style.top = -(textDiv2.offsetHeight-textDiv1.offsetHeight)*Prozent + 'px';
 }sonst wenn(oDiv.offsetTop>divY){
 oDiv.style.top = oDiv.offsetTop – Geschwindigkeit + „px“;
 textDiv2.style.top = -(textDiv2.offsetHeight-textDiv1.offsetHeight)*Prozent + 'px';
 }sonst wenn(oDiv.offsetTop>260){
 oDiv.offsetTop = 272+'px';
 Intervall löschen(Timer);
 }sonst wenn(oDiv.offsetTop<10){
 oDiv.offsetTop = 0+'px';
 Intervall löschen(Timer);
 }anders{
 Intervall löschen(Timer);
 }
 
 
 },10);
 
 }
 
}

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Natives JS implementiert benutzerdefinierte Bildlaufleistenkomponente
  • js realisiert das automatische Scrollen der Bildlaufleiste
  • Vue.js Desktop benutzerdefinierte Bildlaufleiste Komponente Verschönerung Bildlaufleiste VScroll
  • Benutzerdefinierter JS-Bildlaufleisteneffekt
  • JavaScript implementiert ein einfaches Chat-Dialogfeld (mit Bildlaufleiste)
  • Implementierung einer benutzerdefinierten JS-Bildlaufleiste mithilfe des JS-Radereignisses
  • JS implementiert Scrollbar-Boden, um mehr zu laden
  • Verwenden von js zum Implementieren einer einfachen Bildlaufleisten-Prozessanalyse
  • layer.js - Beispiel zum Ausblenden der Bildlaufleiste öffnen
  • Vue pure js überwacht das Beispiel der Bildlaufleiste nach unten
  • JavaScript ermittelt die Position der Bildlaufleiste und verschiebt die Seite zum Ankerpunkt

<<:  Lösung für den Fehler bei der MySQL-Remoteverbindung

>>:  Einrichten eines globalen Shadowsocks+Polipo-Proxys in einer Linux-Umgebung

Artikel empfehlen

Installieren Sie zwei MySQL5.6.35-Datenbanken unter Win10

Notieren Sie die Installation von zwei MySQL5.6.3...

Was ist ein MySQL-Tablespace?

Das Thema, das ich heute mit Ihnen teilen möchte,...

Beispiel einer Nginx-Standortübereinstimmungsregel

1. Grammatik Standort [=|~|~*|^~|@] /uri/ { ... }...

Erklärung der Rückgabe einer MySQL-Tabelle führt zur Ungültigkeit des Index

Einführung Wenn die MySQL InnoDB-Engine Datensätz...

Eintauchen in die JS-Vererbung

Inhaltsverzeichnis Vorwort Vorbereiten Zusammenfa...

W3C Tutorial (10): W3C XQuery Aktivitäten

XQuery ist eine Sprache zum Extrahieren von Daten...

5 Dinge, die beim Schreiben von React-Komponenten mit Hooks zu beachten sind

Inhaltsverzeichnis 01. Verwenden Sie useState, we...

So deinstallieren Sie MySQL 5.7.19 unter Linux

1. Finden Sie heraus, ob MySQL zuvor installiert ...

So öffnen Sie den Port in Centos7

Die Standard-Firewall von CentOS7 ist nicht iptab...