この記事では、モバイルとPCで簡単なドラッグアンドドロップ効果を実現するためのTypescript + Reactの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。 1. モバイル1.tsxコード 「react」からコンポーネントをインポートします。 './Tab.less' をインポートします インターフェースProps{ } インターフェースユーザー{ id: 文字列、 テキスト: 文字列 } インターフェースコンテンツ{ id: 文字列、 テキスト: 文字列 } インターフェース状態{ ボタンインデックス: 数値、 ボタン配列: user[], コンテンツ配列: コンテンツ[] } クラスTabはComponent<Props, State>を拡張します{ コンストラクタ(props: Props) { スーパー(小道具) この状態 = { ボタンインデックス: 0, ボタン配列: [ { id: '01', テキスト: 'ボタン 1' }, { id: '02', テキスト: 'ボタン 2' }, { id: '03', テキスト: 「ボタン3」 } ]、 コンテンツ配列: [ { id: 'c1', テキスト: 'コンテンツ 1' }, { id: 'c2', テキスト: 'コンテンツ 2' }, { id: 'c3', テキスト: 'コンテンツ 3' } ]、 } } FnTab(インデックス: 数値):void { this.setState({ ボタンインデックス: インデックス }) } 与える() { 戻る ( <div className='タブ'> { this.state.ButtonArray.map((item, index) => <button key={item.id} onClick={this.FnTab.bind(this, index)} className={this.state.ButtonIndex === index ? 'tab-button ac' : 'tab-button'}>{item.text}</button>) } { this.state.ContentArray.map((item, index) => <div key={item.id} style={{display:this.state.ButtonIndex===index?'block':'none'}} className='tab-content'>{item.text}</div>) } </div> ) } } デフォルトタブをエクスポート 2.cssコード .ドラッグ{ 位置: 絶対; 幅: 100ピクセル; 高さ: 100px; 背景色: 赤; } 2. パソコン1.tsxコード 'react' から { Component, createRef } をインポートします。 './index.less' をインポートします インターフェースProps{ } インターフェース状態{ } クラス TextDrag は Component を拡張します { disX: 数値 = 0 disY: 数値 = 0 x: 数値 = 0 y: 数値 = 0 ドラッグ要素 = createRef<HTMLDivElement>() コンストラクタ(props: Props) { スーパー(小道具) この状態 = { } } FnDown(ev: React.MouseEvent) { if (this.dragElement.current) { this.disX = ev.clientX - this.dragElement.current?.getBoundingClientRect().left this.disX = ev.clientY - this.dragElement.current?.getBoundingClientRect().top } document.onmousemove = this.FnMove.bind(これ) document.onmouseup = this.FnUp } FnMove(ev: マウスイベント) { this.x = ev.clientX - this.disX this.y = ev.clientY - this.disY if (this.dragElement.current) { this.dragElement.current.style.left = this.x + 'px' this.dragElement.current.style.top = this.y + 'px' } } FnUp() { ドキュメント.onmousemove = null document.onmouseup = null } 与える() { 戻る ( <div className="TextDrag" ref={this.dragElement} onMouseDown={this.FnDown.bind(this)}> </div> ) } } デフォルトのTextDragをエクスポート 2.cssコード .テキストドラッグ{ 位置: 絶対; 幅: 100ピクセル; 高さ: 100px; 背景色: 赤; } 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQLのクラスタ化インデックスと非クラスタ化インデックスの詳細な説明
>>: Idea で Docker を使用して SpringBoot プロジェクトをデプロイする詳細な手順
私のプロジェクトの特定の機能ではサーバーが rabbitmq にメッセージを送信する必要があるため、...
YSlow は、Yahoo USA が開発したページ スコアリング プラグインです。非常に優れていま...
•CSSには多くのセレクターがあります。複数のセレクターを同じ要素に適用するとどうなるでしょうか? ...
概要MySQL の最も強力な機能の 1 つは、データ取得を実行しながらテーブルを結合できることです。...
オリジナル: http://developer.yahoo.com/performance/rule...
この記事では、Centos7.6 システムと Oracle11g を例に挙げます。 1. まずデータ...
背景情報最近、Windows パフォーマンスに関する本を読み直しています。以前は SCOM 監視を使...
この記事では、MySQL 5.7.16 ZIPパッケージのインストールと設定のチュートリアルを参考ま...
目次序文 - Vue ルーティング1. 最も基本的なルーティング構成1. router/index....
Linux システムの bash history コマンドは、以前に実行したコマンドを記憶し、再入力...
プライベート変数のクロージャ実装プライベート変数は共有されないnew キーワードにより、 perso...
W3C 標準化プロセスは 7 つの異なるステップに分かれています。 W3C 標準化プロセスは 7 つ...
目次G2チャートについて使用テンプレートで使用される完全なコード (棒グラフ)世界地図を追加するG2...
ネットサーフィンをしていると、私の注意を引こうとする美しいグラフィックでいっぱいの Web サイトを...
01. VMware Workstation Pro 15 のダウンロードダウンロード: VMwa...