Typescript+React zum Erzielen einfacher Drag-and-Drop-Effekte auf Mobilgeräten und PCs

Typescript+React zum Erzielen einfacher Drag-and-Drop-Effekte auf Mobilgeräten und PCs

In diesem Artikel wird der spezifische Code von Typescript+React zur Erzielung einfacher Drag-and-Drop-Effekte auf Mobilgeräten und PCs als Referenz bereitgestellt. Der spezifische Inhalt ist wie folgt

1. Handy, Mobiltelefon

1.tsx-Code

importiere { Komponente } von „react“;
importiere './Tab.less'
Schnittstelle Requisiten {
 
}
Schnittstelle Benutzer {
    ID: Zeichenfolge,
    Text: Zeichenfolge
}
Schnittstelleninhalt {
    ID: Zeichenfolge,
    Text: Zeichenfolge
}
Schnittstelle Status {
    ButtonIndex: Zahl,
    ButtonArray: Benutzer[],
    ContentArray: Inhalt[]
}
Klasse Tab erweitert Component<Props, State>{
    Konstruktor(Requisiten: Requisiten) {
        super(Requisiten)
        dieser.Zustand = {
            ButtonIndex: 0,
            Schaltflächenarray: [
                {
                    ID: '01',
                    Text: 'Schaltfläche 1'
                },
                {
                    ID: '02',
                    Text: 'Schaltfläche 2'
                },
                {
                    ID: '03',
                    Text: 'Knopf drei'
                }
            ],
            Inhaltsarray: [
                {
                    ID: "c1",
                    Text: 'Inhalt 1'
                },
                {
                    ID: "c2",
                    Text: 'Inhalt 2'
                },
                {
                    ID: "c3",
                    Text: 'Inhalt 3'
                }
            ],
        }
    }
    FnTab(index: zahl):void {
        dies.setState({
            ButtonIndex: Index
        })
    }
    rendern() {
        zurückkehren (
            <div Klassenname='Tabulator'>
                {
                    this.state.ButtonArray.map((Element, Index) => <Schaltflächenschlüssel={Element.id} bei Klick={this.FnTab.bind(this, Index)} Klassenname={this.state.ButtonIndex === Index ? 'Tab-Button ac' : 'Tab-Button'}>{Element.text}</Schaltflächen>)
                }
                {
                    this.state.ContentArray.map((Element, Index) => <div Schlüssel={Element.id} Stil={{display:this.state.ButtonIndex===index?'block':'none'}} Klassenname='tab-content'>{Element.text}</div>)
                }
 
            </div>
        )
    }
}
Registerkarte „Standard exportieren“

2. CSS-Code

.ziehen {
    Position: absolut;
    Breite: 100px;
    Höhe: 100px;
    Hintergrundfarbe: rot;
}

2. PC

1.tsx-Code

importiere { Komponente, createRef } von 'react'
importiere './index.less'
Schnittstelle Requisiten {
 
 
}
Schnittstelle Status {
 
 
}
Klasse TextDrag erweitert Komponente {
  disX: Zahl = 0
  disY: Zahl = 0
  x: Zahl = 0
  y: Zahl = 0
  dragElement = createRef<HTMLDivElement>()
  Konstruktor(Requisiten: Requisiten) {
    super(Requisiten)
    dieser.Zustand = {
 
 
    }
  }
  FnDown(ev: React.MouseEvent) {
    wenn (dieses.dragElement.current) {
      this.disX = ev.clientX - this.dragElement.current?.getBoundingClientRect().left
      this.disX = ev.clientY - this.dragElement.current?.getBoundingClientRect().top
    }
    Dokument.onmousemove = dies.FnMove.bind(dies)
    Dokument.onmouseup = dies.FnUp
  }
  FnMove(ev: Mausereignis) {
    dies.x = ev.clientX - dies.disX
    dies.y = ev.clientY - dies.disY
    wenn (dieses.dragElement.current) {
      dies.dragElement.current.style.left = dies.x + 'px'
      dies.dragElement.current.style.top = dies.y + 'px'
    }
  }
  FnUp() {
    document.onmousemove = null
    document.onmouseup = null
  }
  rendern() {
    zurückkehren (
      <div className="TextDrag" ref={this.dragElement} onMouseDown={this.FnDown.bind(this)}> </div>
 
 
    )
  }
}

Standard-TextDrag exportieren

2. CSS-Code

.TextDrag{
    Position: absolut;
    Breite: 100px;
    Höhe: 100px;
    Hintergrundfarbe: rot;
}

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:
  • Detaillierte Erklärung des verschiebbaren und bearbeitbaren Gantt-Diagramms (Highcharts können für Vue und React verwendet werden)
  • react-beautiful-dnd implementiert die Drag-and-Drop-Funktion für Komponenten
  • Verwenden von react-beautiful-dnd zum Implementieren von Drag & Drop zwischen Listen
  • Mehr als 100 Zeilen Code zur Implementierung von React Drag Hooks
  • React.js-Komponente implementiert Drag & Drop-Sortierkomponentenfunktionsprozessanalyse
  • Reagieren Sie mit Beispielcode zur Implementierung der Drag & Drop-Funktion
  • React.js-Komponente implementiert Drag-and-Drop-Kopie und sortierbaren Beispielcode
  • Lassen Sie uns noch einmal über eine Reihe von Problemen sprechen, die durch die Implementierung nativer JS-Drag-Effekte in React.js verursacht werden
  • Gedanken zur Implementierung nativer JS-Drag-Effekte basierend auf React.js
  • React implementiert einfache Drag & Drop-Funktion

<<:  Detaillierte Erläuterung des MySQL-Clusterindex und des Nicht-Clusterindex

>>:  Detaillierte Schritte zum Bereitstellen von SpringBoot-Projekten mit Docker in Idea

Artikel empfehlen

Detaillierte Erklärung der MySQL DEFINER-Verwendung

Inhaltsverzeichnis Vorwort: 1. Kurze Einführung i...

W3C Tutorial (6): W3C CSS Aktivitäten

Ein Stylesheet beschreibt, wie ein Dokument angez...

Videojs+Swiper realisiert Taobao-Produktdetailkarussell

In diesem Artikel wird der spezifische Code von v...

React implementiert dynamische Popup-Fensterkomponente

Wenn wir beim Schreiben einiger UI-Komponenten di...

Verwenden von CSS3 zum Implementieren eines Schriftfarbverlaufs

Beim Verwenden von Animation.css habe ich festges...

Detaillierte Erklärung des Vue Notepad-Beispiels

In diesem Artikelbeispiel wird der spezifische Co...

Eine kurze Diskussion über 3 bemerkenswerte neue Features in TypeScript 3.7

Inhaltsverzeichnis Vorwort Optionale Verkettung N...

Grundlegende Verwendung von Javascript-Array-Includes und -Reduces

Inhaltsverzeichnis Vorwort Array.Prototyp.enthält...

Zehn Erfahrungen im Webdesign im Jahr 2008

<br />Das Internet verändert sich ständig un...

So überwachen und löschen Sie abgelaufene Sitzungen in Tomcat

Vorwort Ich habe zufällig entdeckt, dass die halb...

Bedeutung und Verwendung einer Linux-CD

Was bedeutet Linux-CD? Unter Linux bedeutet cd „V...

Detailliertes Tutorial zur Verwendung des Befehls xargs unter Linux

Hallo zusammen, ich bin Liang Xu. Sind Sie bei de...