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

MySQL-Fall beim Gruppieren nach Beispiel

Eine MySQL-ähnliche PHP-Switch-Case-Anweisung. wä...

Detaillierte Erklärung des Integer-Datentyps tinyint in MySQL

Inhaltsverzeichnis 1.1Tinyint-Typbeschreibung 1.2...

Haben Sie die MySQL-Verbindungsabfrage wirklich gelernt?

1. Übersicht über Inner Join-Abfragen Der Inner J...

Tutorial zu HTML-Tabellen-Tags (27): Zell-Hintergrundbild-Attribut BACKGROUND

Wir können ein Hintergrundbild für die Zelle fest...

SQL-Funktion zum Zusammenführen eines Feldes

Vor kurzem musste ich alle Felder einer verknüpft...

Anwendungsbeispiele für React Hooks (6 gängige Hooks)

1. useState: Funktionskomponenten Status geben An...

Detaillierte Analyse mehrerer Situationen, in denen MySQL-Indizes fehlschlagen

1. Führende Fuzzy-Abfragen können keinen Index ve...

Implementierung des Element-UI-Layouts (Zeilen- und Spaltenkomponenten)

Inhaltsverzeichnis Grundlegende Anweisungen und V...

So fügen Sie die Tomcat-Serverkonfiguration zu Eclipse hinzu

1. Fenster -> Einstellungen, um das Eclipse-Ei...

MySQL verwendet frm-Dateien und ibd-Dateien, um Tabellendaten wiederherzustellen

Inhaltsverzeichnis Einführung in FRM-Dateien und ...

Der Implementierungsprozess der Linux-Prozessnetzwerkverkehrsstatistik

Vorwort Linux verfügt über entsprechende Open-Sou...