React implementiert doppelten Schieberegler zum Querschieben

React implementiert doppelten Schieberegler zum Querschieben

In diesem Artikel wird der spezifische Code für React zur Implementierung des Doppelschiebereglers Cross Sliding zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

HTML Quelltext:

<Text>
    <div id="Wurzel"></div>
</body>

Skriptcode:

<Skripttyp="text/babel">
    const root = document.querySelector('#root')
    Klasse Comp erweitert React.Component {
        Konstruktor(...args) {
            super(...args)
        }
        fn(ev) {
            // Abstand des Mausklicks ermitteln this.pageX = ev.changedTouches[0].pageX - ev.target.offsetLeft
            // Das übergeordnete Element abrufen this.parentWidth = ev.target.parentNode.offsetWidth - ev.target.offsetWidth
            // Den übergeordneten Knoten abrufen this.parent = ev.target.parentNode
            // Holen Sie sich die Zeile this.line = this.parent.children[2]
 
 
            // Hol den Ball auf der linken Seite this.oBall = this.parent.children[0]
            // Der Ball rechts this.oBallTwo = this.parent.children[1]
 
            Dokument.ontouchmove = dies.fnMove.bind(dies)
            Dokument.ontouchend = this.fnEnd
        }
        fnBewegung(ev) {
            // Box-Offset this.X = ev.changedTouches[0].pageX - this.pageX
            // Überprüfen Sie, dass der Versatz nicht größer als die Breite des übergeordneten Felds sein kann, wenn (this.X >= this.parentWidth) {
                dies.X = diese.übergeordneteBreite
            }
            //Überprüfen Sie, ob der Wert nicht kleiner als 0 sein kann
            wenn (dies.X <= 0) {
                dies.X = 0
            }
            //Breite der Linie berechnen. Der Absolutwert der interaktiven Berechnung der kleinen Kugeln ist die Breite der Linie this.lineWidth = Math.abs(this.oBallTwo.offsetLeft - this.oBall.offsetLeft)
            // Linienbreite this.line.style.width = this.lineWidth + 'px'
            // Der Abstand vom Ball nach links ev.target.style.left = this.X + 'px'
            // Bestimme den OffsetLeft des rechten Balls minus dem OffsetLeft des linken Balls. Wenn dieser kleiner als 0 ist, ist der rechte Ball am nächsten links. Nimm seinen OffsetLeft-Wert heraus, der die Distanz der Linie nach links ist, wenn (this.oBallTwo.offsetLeft-this.oBall.offsetLeft<0) {
                diese.Linie.Stil.links=diese.oBallTwo.offsetLeft+'px'
            }anders{
                diese.Linie.Stil.links=diese.oBall.offsetLeft+'px'
            }
        }
        fnEnd() {
            document.ontouchmove = null
            document.ontouchend = null
        }
        rendern() {
            zurück (<div Klassenname='Box'>
                <div Klassenname = 'Ball' onTouchStart = {this.fn.bind(this)}></div>
                <div className='ball ac' onTouchStart={this.fn.bind(this)}></div>
                <div Klassenname = "Zeile"></div>
                <div Klassenname = 'lineT'></div>
            </div>)
        }
    }
    ReactDOM.render(<Comp />, Wurzel)
 
</Skript>

CSS-Stil:

<Stil>
        Körper {
            Rand: 0;
            Polsterung: 0;
        }
 
        .Kasten {
            Breite: 500px;
            Höhe: 40px;
            Hintergrund: #999;
            Position: relativ;
            Rand: automatisch;
            Rand oben: 100px;
        }
 
        .ball {
            Breite: 40px;
            Höhe: 40px;
            Hintergrund: rot;
            Position: absolut;
            Randradius: 50 %;
            Z-Index: 10;
        }
 
        .ball.ac {
            Hintergrund: #0f0;
            rechts: 0;
        }
 
        .Linie {
            Höhe: 5px;
            Breite: 500px;
            Hintergrund: rgb(200, 110, 7);
            Position: absolut;
            oben: 50 %;
            links: 0;
            transformieren: übersetzen(0, -50%);
            Z-Index: 5;
        }
 
        .lineT {
            Höhe: 5px;
            Breite: 500px;
            Hintergrund: #fff;
            Position: absolut;
            oben: 50 %;
            links: 0;
            transformieren: übersetzen(0, -50%);
        }
</Stil>

Zweite Methode: Klicken Sie auf den Link, um die zweite Methode anzuzeigen

Vue realisiert den Gleitkreuzeffekt des Balles

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:
  • React-native-Beispielcode zur Implementierung des Schiebelöscheffekts des Einkaufswagens
  • Der Implementierungsprozess des gleitenden Deckeneffekts von react-native
  • Beispielcode der gleitenden Bildüberprüfungscodekomponente von React

<<:  Vue realisiert den Gleitkreuzeffekt des Balles

>>:  Lösung für den Absturz der Grafikkarte auf Linux-Servern

Artikel empfehlen

Natives JS zum Erzielen von Verzeichnis-Scrolleffekten

Hier ist ein Text-Scrolling-Effekt, der mit nativ...

Analyse der Nutzungsszenarien und Konfigurationsmethoden von Nginx Rewrite

Nginx Rewrite-Nutzungsszenarien 1. Sprung der URL...

So verwenden Sie SVG-Symbole in WeChat-Applets

SVG wurde in den letzten Jahren aufgrund seiner v...

Detaillierte Erklärung der HTML-Style-Tags und der zugehörigen CSS-Referenzen

HTML-Style-Tag Stil-Tag - Verwenden Sie dieses Ta...

So zeigen Sie den Status von Remote-Serverdateien in Linux an

Wie unten dargestellt: Der Testbefehl stellt fest...

So verwenden Sie Bind zum Einrichten eines DNS-Servers

DNS (Domain Name Server) ist ein Server, der Domä...

Detaillierte Erklärung der grep- und egrep-Befehle in Linux

Vertreter / egrep Syntax: grep [-cinvABC] 'wo...

Neunundvierzig JavaScript-Tipps und Tricks

Inhaltsverzeichnis 1. Betrieb von js Integer 2. S...

Verwenden Sie CSS, um ein Datei-Upload-Muster zu zeichnen

Wenn Sie es wären, wie würden Sie es erreichen, w...

JavaScript Canvas zeichnet dynamische Drahtgittereffekte

In diesem Artikel wird der spezifische Code des d...

Detaillierte Erklärung der Verwendung von Object.assign() in ES6

Inhaltsverzeichnis 2. Zweck 2.1 Objekten Eigensch...

Erste Schritte mit Front-End-Vue-Unit-Tests

Inhaltsverzeichnis 1. Warum brauchen wir Unit-Tes...

Super detaillierte Schritte zur Installation von Zabbix3.0 auf Centos7

Vorwort Vor Kurzem wurde ein Teil der Geschäftstä...

Aufzeichnungen zur Verwendung von SSH-Befehlen unter Windows 8

1. Öffnen Sie die virtuelle Maschine und das Git-...