JavaScript はマウスのドラッグを実装して div のサイズを調整します

JavaScript はマウスのドラッグを実装して div のサイズを調整します

この記事では、マウスをドラッグしてdivのサイズを調整するJavaScriptの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

実装のアイデア:

  • マウスの位置に基づいてマウスのスタイルを変更する
  • マウスがdivの端と四隅にある場合、カーソルによって異なるスタイルが表示され、変更されます。
  • divの端と四隅をマウスで押すと、特定の座標点の位置が記録され、マウスの動きに応じてdivのサイズが変更されます。
  • マウスを離すとサイズ変更が終了

コード実装:

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
 <メタ文字セット="UTF-8">
 <title>タイトル</title>
 <スタイル>
  本文、html {
   幅: 100%;
   高さ: 100%;
   マージン: 0;
  }

  #容器 {
   幅: 200ピクセル;
   高さ: 200px;
   パディング: 15px;
   境界線: #00cdcd 2px 実線;
   ボックスのサイズ: 境界線ボックス;
  }

  。アイテム {
   カーソル: デフォルト;
   幅: 100%;
   高さ: 100%;
   背景: #757575;
  }
 </スタイル>
</head>
<body id="body">
<div id="コンテナ">
 <div class="item"></div>
</div>
<スクリプト>
 //サイズを変更する必要があるdiv
 c = document.getElementById('コンテナ')
 // body は移動イベントをリッスンします document.getElementById('body').addEventListener('mousemove', move)
 // マウスダウンイベント c.addEventListener('mousedown', down)
 // マウスリリースイベント document.getElementById('body').addEventListener('mouseup', up)

 // サイズ変更を有効にするかどうか let resizeable = false
 // マウスが押されたときの座標、およびサイズを変更するときに前のマウス位置を保存する let clientX, clientY
 // div が変更できる最小の幅と高さ let minW = 8, minH = 8
 // マウスが押されたときの位置。n、s、w、e で表されます。let direc = ''

 //マウスを離すとサイズ変更が終了します function up() {
  サイズ変更可能 = false
 }

 // マウスが押されたときにサイズの変更を有効にする function down(e) {
  d = getDirection(e) とします。
  // 位置が4辺と4隅の場合にのみサイズ変更を有効にする if (d !== '') {
   サイズ変更可能 = true
   方向 = d
   クライアントX = e.clientX
   クライアントY = e.clientY
  }
 }

 // マウス移動イベント関数move(e) {
  d = getDirection(e) とします。
  カーソルを
  if (d === '') カーソル = 'default';
  それ以外の場合、カーソル = d + '-resize';
  // マウスの表示効果を変更します c.style.cursor = cursor;
  // サイズ変更が有効な場合、マウスの動きによって div のサイズが変更されます if (resizeable) {
   // マウスが右側で押されたら、幅を変更します if (direc.indexOf('e') !== -1) {
    c.style.width = Math.max(minW, c.offsetWidth + (e.clientX - clientX)) + 'px'
    クライアントX = e.clientX
   }

   // マウスが上部で押された場合、高さを変更します if (direc.indexOf('n') !== -1) {
    c.style.height = Math.max(minH, c.offsetHeight + (clientY - e.clientY)) + 'px'
    クライアントY = e.clientY
   }
   // マウスが下部で押された場合、高さを変更します if (direc.indexOf('s') !== -1) {
    c.style.height = Math.max(minH, c.offsetHeight + (e.clientY - clientY)) + 'px'
    クライアントY = e.clientY
   }

   // マウスが左側で押された場合、幅を変更します if (direc.indexOf('w') !== -1) {
    c.style.width = Math.max(minW, c.offsetWidth + (clientX - e.clientX)) + 'px'
    クライアントX = e.clientX
   }

  }
 }

 // マウスが位置するdivの位置を取得する function getDirection(ev) {
  xP、yP、オフセット、dir を設定します。
  ディレクトリ = '';

  xP = ev.offsetX;
  yP = ev.offsetY;
  オフセット = 10;

  (yP < オフセット) dir += 'n' の場合;
  そうでない場合、(yP > c.offsetHeight - offset) dir += 's';
  (xP < オフセット) dir += 'w' の場合;
  そうでない場合、(xP > c.offsetWidth - offset) dir += 'e';

  dir を返します。
 }
</スクリプト>
</本文>
</html>

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • js はマウスドラッグ div を左右にスライドすることを実現します
  • マウスのドラッグとズームを実現する js div サンプルコード
  • JavaScript を使用してマウス ドラッグ イベントを実装する
  • マウスをドラッグしてサブウィンドウを移動するJS実装
  • jsはマウスをドラッグして画像を切り替えるメソッドを実装します
  • JS マウスドラッグ例の分析
  • JavaScript のシンプルなドラッグ アンド ドロップ実装コード (マウス イベント mousedown mousemove mouseup)
  • jsMindはマウスをドラッグしてノードの位置を調整します
  • マウスドラッグ複数選択機能を実現する js の例
  • JSはマウスの押し込みとドラッグの効果を実現します

<<:  バッテリー残量が少なくなったときに Linux を自動シャットダウンする方法

>>:  Centos 6.5 での mysql-community-server. 5.7.18-1.el6 のインストール

推薦する

MySQL 5.7.21 履歴データディレクトリからデータを復元するチュートリアルの解凍バージョン

状況の説明: データベースが異常に起動およびシャットダウンしたため、サービスを再度起動したときに「起...

今日と昨日の 0:00 タイムスタンプを取得する MySQL の例

以下のように表示されます。昨日: UNIX_TIMESTAMP(CAST(SYSDATE() AS ...

Vue実戦記録のログインページの実装

目次1. 事前準備1.1 Node.jsをインストールする1.2 webpackをインストールする1...

HTML チュートリアル、簡単に学べる HTML 言語 (2)

*******************HTML言語入門(パート2)*****************...

ブラウザのCSS、JavaScript、背景画像のキャッシュをクリアする簡単な方法

実際のプロジェクト開発プロセスでは、ページがサーバーにアップロードされます。サーバーへの負荷を軽減し...

CSS の複数行テキストがオーバーフローする場合の省略記号の例

複数行のテキストがオーバーフローすると省略記号が表示されますこの記事では 2 つの方法を推奨します。...

Linux プラットフォームでの Zabbix エージェントのインストールと設定方法

ここでは、Linux プラットフォームでの Zabbix エージェントのインストールと構成について簡...

js を使用してウォーターフォール効果を実現する

この記事の例では、滝の流れの効果を実現するためのjsの具体的なコードを参考までに共有しています。具体...

Linuxでのソフトウェア(ライブラリ)の更新コマンドの詳しい説明

Ubuntu サーバーにパッケージをインストールする場合、sudo apt-get install ...

CSSは背景画像の画面適応を実現する

ログインページなどのホームページを作成する場合、大きな背景画像を配置する必要があり、さまざまな画面の...

Linux ユーザーとグループのコマンド例分析 [切り替え、ユーザーの追加、権限制御など]

この記事では、Linux のユーザーおよびグループのコマンドについて例を挙げて説明します。ご参考まで...

Vueはページに透かし効果を追加する機能を実装します

最近、あるプロジェクトに取り組んでいたとき、ページに透かし効果を追加するように依頼されました。さっそ...

MySQL はエンタープライズレベルのログ管理、バックアップ、リカバリの実践的なチュートリアルを実装します

背景事業が発展するにつれ、会社の事業内容や規模は拡大し続け、ウェブサイトには大量のユーザー情報やデー...

優れた登録プロセスの手順

ウェブサイトにとって、これは最も基本的な機能です。それでは、登録プロセスに含まれる手順を見てみましょ...

Vue.js での $emit の使用に関する詳細な説明

1. 親コンポーネントは props を使用して子コンポーネントにデータを渡すことができます。 2....