この記事では、マウスをドラッグしてdivのサイズを調整するJavaScriptの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。 実装のアイデア:
コード実装: <!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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: バッテリー残量が少なくなったときに Linux を自動シャットダウンする方法
>>: Centos 6.5 での mysql-community-server. 5.7.18-1.el6 のインストール
以下のように表示されます。 1. ssh -v -p [ポート番号] [ユーザー名]@[IPアドレス...
この記事では、タブ切り替えを実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...
接続は、実際の外部キー(人工的に作成された 2 つのテーブル間の対応関係を指します。対照的に、FOR...
以前は、このような使用シナリオを処理するために rand() で直接 order していましたが、効...
1. はじめにtr はテキストの一部を変換または削除するために使用されます。 tr は transl...
Linux には、2 種類のファイル接続があります。1 つは Windows のショートカットに似て...
目次トランザクション分離レベルファントムリーディングとは何ですか?ファントムリードを排除する方法要約...
目次序文1. 文字列を分割する2. JSONのフォーマットと解析3. 複数行の文字列と埋め込み式4....
通常、人事担当者と会うことはめったにありませんが、一度会うと、それが生死を分けることもあります。 H...
ファイル サーバーは、企業内で最も一般的に使用されるサーバーの一つであり、主にファイル共有を提供する...
目次序文v-model の修飾子:怠け者トリム番号さまざまな入力タイプやその他の要素での v-mod...
序文最近、X 省のコールド チェーン トレーサビリティ システムの開発で忙しくしています。毎日午後 ...
目次質問: ボタンをクリックすると、スパンの色が赤に変わりますか?上記の問題を分析します。 2番目の...
目次1.kvmの展開1.1 kvmのインストール1.2 kvm Web管理インターフェースのインスト...
まず、フォームを送信するいくつかの方法を見てみましょう。 1. <!--一般的な送信ボタン--...