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

Detaillierte Erklärung des Prinzips des js-Proxys

Inhaltsverzeichnis Was ist der Proxy-Modus? Einfü...

Die Hauptidee zum dynamischen Festlegen von Routing-Berechtigungen in Vue

Ich habe zuvor einige dynamische Routing-Einstell...

HTML-Auszeichnungssprache - Formular

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Zusammenfassung der Wissenspunkte zum MySQL ALTER-Befehl

Wenn wir den Tabellennamen ändern oder die Tabell...

In wenigen Schritten zum einfachen Aufbau eines Windows-SSH-Servers

Das hier erwähnte SSH heißt Security Shell. Ich g...

So implementieren Sie das Builder-Muster in Javascript

Überblick Das Builder-Muster ist ein relativ einf...

Verschiedene Methoden zum Neustarten von Mysql unter CentOS (empfohlen)

1. MySQL über RPM-Paket installiert Dienst MySQL ...

Netzwerkmanagement und Netzwerkisolationsimplementierung von Docker-Containern

1. Docker-Netzwerkverwaltung 1. Docker-Container-...

Beispielcode für die Master-Slave-Trennung einer MySQL-Datenbank

einführen Durch das Einrichten einer Lese-/Schrei...

Lösungen für MySQL OOM (Speicherüberlauf)

OOM steht für „Out Of Memory“, was so viel bedeut...

Die Element-UI-Tabelle realisiert die Dropdown-Filterfunktion

In diesem Artikelbeispiel wird der spezifische Co...