ホームページ ウェブフロントエンド jsチュートリアル jQueryをマスターしてマウス描画フレームを実装し、フレーム内のデータを選択する

jQueryをマスターしてマウス描画フレームを実装し、フレーム内のデータを選択する

May 12, 2018 am 11:24 AM
jquery ねずみ

誰もが jQuery を使用してマウス フレームを実装し、フレーム内のデータを選択できますか?この記事では、マウス フレームを実装し、フレーム内のデータを選択するための jQuery サンプル コードを紹介します。これは非常に優れており、必要な方は参考にしてください。

jquery ライブラリ:

jquery-1.10.2.min.js、jQuery UI - v1.12.1。

jQuery コード

これ以上はありません。コードに移りましょう。何か理解できない場合は、コメントを読んでください。

<script type="text/javascript">
 //鼠标按下时的X Y坐标
 var mouseDownX;
 var mouseDownY;
 //鼠标按下时移动的X Y 坐标
 var mouseMoveX;
 var mouseMoveY;
 //移动的状态
 var isMove = false;
 /*初始化 选择框 */
 function init() {
  $("#selected").css("display", "none");
  $("#selected").css("top", "0");
  $("#selected").css("left", "0");
  $("#selected").css("width", "0");
  $("#selected").css("height", "0");
 }
 $(document).ready(function() {
  init();
  var selectedTD = new Array();//创建被选中表格数组
  var TD = $("td");//获取所有表格信息
  for ( var i = 0; i < TD.length; i++) {
   selectedTD.push(TD[i]);
  }
  $("#tablep").mousedown(function(event) {
   mouseDownX = event.clientX - $(this).offset().left;;
   mouseDownY = event.clientY - $(this).offset().top;
   console.log("mouseDownX=" + mouseDownX +" mouseDownY=" + mouseDownY );
   if(event.target.id.match(/selected/)) {
    isMove = true;
   }
   //鼠标按下并移动时进行判断(拖拽 or 画框)
   $("#tablep").mousemove(function(event) {
    mouseMoveX = event.clientX - $(this).offset().left;
    mouseMoveY = event.clientY - $(this).offset().top;
    var selectp = document.getElementById("selected");
    if (isMove) {
     //拖拽的代码,因为实在不想算 xy 了,所以使用了jquery ui
     $("#selected").draggable();
     //这部分是负责画框的时候,实时把框住的表格变色的,(代码和下面的代码重复了)
     var left = selectp.offsetLeft, top = selectp.offsetTop; width = selectp.offsetWidth, height = selectp.offsetHeight;
     for ( var i = 0; i < selectedTD.length; i++) {
      var sl = selectedTD[i].offsetWidth + selectedTD[i].offsetLeft;
      var st = selectedTD[i].offsetHeight + selectedTD[i].offsetTop;
      if (sl > left && st > top && selectedTD[i].offsetLeft < left + width && selectedTD[i].offsetTop < top + height) {
       if (selectedTD[i].className.indexOf("selected") == -1) {
        selectedTD[i].className = "selected";
       }
      } else { 
       if (selectedTD[i].className.indexOf("selected") != -1) { 
        selectedTD[i].className = "TD"; 
       }
      }
     }
    } else {
     //重复的代码,完了再把它抽取出来
     var left = selectp.offsetLeft, top = selectp.offsetTop; width = selectp.offsetWidth, height = selectp.offsetHeight;
     for ( var i = 0; i < selectedTD.length; i++) {
      var sl = selectedTD[i].offsetWidth + selectedTD[i].offsetLeft;
      var st = selectedTD[i].offsetHeight + selectedTD[i].offsetTop;
      if (sl > left && st > top && selectedTD[i].offsetLeft < left + width && selectedTD[i].offsetTop < top + height) {
       if (selectedTD[i].className.indexOf("selected") == -1) {
        selectedTD[i].className = "selected";
       }
      } else {
       if (selectedTD[i].className.indexOf("selected") != -1) { 
        selectedTD[i].className = "TD"; 
       }
      }
     }
     //鼠标抬起结束画框,和拖动
     $("#tablep").mouseup(function() {
      console.log("mouseUpX=" + mouseMoveX + " mouseUpY=" + mouseMoveX);
      isMove = false;
      $(this).unbind(&#39;mousemove&#39;);
     })
     //画框
     displaySelected(mouseDownY, mouseDownX, mouseMoveX, mouseMoveY);
    }
   })
  })
  //当鼠标在已经画好的框上时,改变鼠标指针样式,就是十字形了
  $("#selected").mouseenter(function() {
   $("#selected").css("cursor", "move");
  });
 });
 function displaySelected(mouseDownY, mouseDownX, mouseUpX, mouseUpY) {
  $("#selected").css("display", "block");
  $("#selected").css("top", mouseDownY);
  $("#selected").css("left", mouseDownX);
  var moveX = mouseMoveX - mouseDownX;
  var moveY = mouseMoveY - mouseDownY;
  if (moveY < 0) {
    $("#selected").css("top", event.clientY - $("#table").offset().top);
  }
  if (moveX < 0) {
   $("#selected").css("left", event.clientX - $("#table").offset().left);
  }
  $("#selected").css("width", Math.abs(moveX));
  $("#selected").css("height", Math.abs(moveY));
 }
 </script>
ログイン後にコピー

テスト用HTML

テーブルを使用したテスト:

<p id="tablep" style="width: 1500px; height: 1500px;top: 100px; left:100px; position: absolute;">
  <p id="selected" style="border:5px dotted rgb(239, 37, 17);position: absolute;display: none;"></p>
  <table border="1" style=" width: 1500px; height: 1500px;" id="table">
  <tr>
   <td id="1" class="TD"></td>
   <td id="2" class="TD"></td>
   <td id="3" class="TD"></td>
   <td id="4" class="TD"></td>
   <td id="5" class="TD"></td>
   <td id="6" class="TD"></td>
  </tr>
  <tr>
   <td id="7" class="TD"></td>
   <td id="8" class="TD"></td>
   <td id="9" class="TD"></td>
   <td id="10" class="TD"></td>
   <td id="11" class="TD"></td>
   <td id="12" class="TD"></td>
  </tr>
  <tr>
   <td id="1" class="TD"></td>
   <td id="2" class="TD"></td>
   <td id="3" class="TD"></td>
   <td id="4" class="TD"></td>
   <td id="5" class="TD"></td>
   <td id="6" class="TD"></td>
  </tr>
  </table>
 <!--表格代码太多所以...-->
 </p>
ログイン後にコピー

レンダリング

jQueryをマスターしてマウス描画フレームを実装し、フレーム内のデータを選択する

関連推奨事項:

jqueryのマウスホバーナビゲーションの下線スライドアウト効果の説明例

jquery code 面白い特集を実現マウスクリックテキストへの影響

テーブル内のマウスクリック位置の行番号と列番号を取得するjQuery実装の詳細説明

以上がjQueryをマスターしてマウス描画フレームを実装し、フレーム内のデータを選択するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Win11 でタスクバーのサムネイル プレビューを無効にする方法は? マウスを移動してタスクバー アイコンのサムネイル表示テクニックをオフにする Win11 でタスクバーのサムネイル プレビューを無効にする方法は? マウスを移動してタスクバー アイコンのサムネイル表示テクニックをオフにする Feb 29, 2024 pm 03:20 PM

この記事では、Win11システムでタスクバーアイコンをマウスで移動したときに表示されるサムネイル機能をオフにする方法を紹介します。この機能はデフォルトでオンになっており、ユーザーがタスクバー上のアプリケーション アイコンの上にマウス ポインタを置くと、アプリケーションの現在のウィンドウのサムネイルが表示されます。ただし、一部のユーザーは、この機能があまり役に立たない、またはエクスペリエンスに悪影響を与えると感じ、オフにしたい場合があります。タスクバーのサムネイルは楽しい場合もありますが、気が散ったり煩わしい場合もあります。この領域にマウスを移動する頻度を考えると、重要なウィンドウを誤って閉じてしまったことが何度かある可能性があります。もう 1 つの欠点は、より多くのシステム リソースを使用することです。そのため、リソース効率を高める方法を探している場合は、それを無効にする方法を説明します。しかし

HP、Professional 1 3モードソフトマウスを発売:4000DPI、Blue Shadow RAW3220、初期価格99元 HP、Professional 1 3モードソフトマウスを発売:4000DPI、Blue Shadow RAW3220、初期価格99元 Apr 01, 2024 am 09:11 AM

3月31日のこのウェブサイトのニュースによると、HPは最近JD.comでProfessor1 3モードBluetoothマウスを発売し、黒と白のミルクティー色があり、初期価格は99元で、保証金10元が必要です。報道によると、このマウスは重さ106グラム、人間工学に基づいたデザインを採用し、寸法127.02x79.59x51.15mm、オプションで7つの4000DPIレベルがあり、Blue Shadow RAW3220センサーを搭載し、650mAhのバッテリーを使用することができるとのことです。 1回の充電で2か月使用可能。このサイトに添付されているマウスパラメータ情報は次のとおりです。

Razer | Pokémon Gengar ワイヤレスマウスとマウスパッドが登場、セット価格は 1,549 元 Razer | Pokémon Gengar ワイヤレスマウスとマウスパッドが登場、セット価格は 1,549 元 Jul 19, 2024 am 04:17 AM

7 月 12 日のこのサイトのニュースによると、Razer は本日、Razer|Pokémon Gengar ワイヤレス マウスとマウス パッドの発売を発表しました。単品価格はそれぞれ1,299元、299元、2製品を含むパッケージ価格は1,549元。 Razer が Gengar と提携した周辺機器製品を発売するのはこれが初めてではありません。2023 年に Razer は Gengar スタイルの Yamata Orochi V2 ゲーミング マウスを発売しました。今回発売される2商品は、いずれもゴースト、ゴースト、ゲンガーの姿をイメージした濃い紫色を基調に、その3匹のポケモンとモンスターボールの輪郭がプリントされており、中央にキャラクターのゲンガーが描かれている。古典的なゴーストタイプのポケモンの大きくてカラフルな画像。このサイトでは、Razer|Pokémon Gengar ワイヤレス マウスが、以前にリリースされた Viper V3 Professional Edition に基づいていることがわかりました。全体の重量は 55g で、Razer の第 2 世代 FOC を搭載しています。

VGN との提携ブランド「Elden's Circle」キーボードおよびマウス シリーズ製品が店頭に並びました: Lani / Faded One カスタム テーマ、99 元から VGN との提携ブランド「Elden's Circle」キーボードおよびマウス シリーズ製品が店頭に並びました: Lani / Faded One カスタム テーマ、99 元から Aug 12, 2024 pm 10:45 PM

8月12日のこのサイトのニュースによると、VGNは8月6日に、Lani/Faded Oneのカスタマイズされたテーマでデザインされたキーボード、マウス、マウスパッドを含む共同ブランドの「Elden Ring」キーボードおよびマウスシリーズを発売しました。の製品はJD.comに掲載されており、価格は99元からです。このサイトに添付されている共同ブランドの新製品情報は次のとおりです。 VGN丨Elden Law Ring S99PRO キーボード このキーボードは、純粋なアルミニウム合金シェルを使用し、5 層サイレンサー構造によって補完され、GASKET 板バネ構造を使用し、単一の- キースロット付き PCB、独自の高さの PBT 素材キーキャップ、アルミニウム合金のパーソナライズされたバックプレーン、VHUB に接続された 3 つのモード接続と SMARTSPEEDX 低遅延テクノロジーをサポートし、549 元から複数のデバイスをワンストップで管理できます。 VGN丨Elden French Ring F1PROMAX ワイヤレスマウス マウス

Razer マウス ドライバーはどのフォルダーにありますか? Razer マウス ドライバーはどのフォルダーにありますか? Mar 02, 2024 pm 01:28 PM

多くのユーザーは、Razer ドライバーによってインストールされたファイルがどこに行くのか知りません。これらのドライバー ファイルは、通常、コンピューターの C ドライブであるシステム ディスクにインストールされます。特定の場所は、programfile の RAZE フォルダーにあります。 Razer マウス ドライバーはどのフォルダーにありますか? A: システム C ドライブの Programfiles の下の RAZE フォルダーにあります。通常、ドライバーは C ドライブにインストールされます。場所に応じて見つけてください。 Razer マウスドライバーのインストール方法の紹介 1. 公式 Web サイトからファイルをダウンロードした後、ダウンロードした EXE ファイルをダブルクリックして実行します。 2. ソフトウェアがロードされるまで待ちます。 3. ここで、インストールするドライバーを選択できます。 4. 選択後、右下の「インストール」をクリックします。

Colorful が M900 Pro ワイヤレス ゲーミング マウスを発売: 右手用人間工学に基づいた形状、8K Nano レシーバー、199 元から Colorful が M900 Pro ワイヤレス ゲーミング マウスを発売: 右手用人間工学に基づいた形状、8K Nano レシーバー、199 元から Mar 23, 2024 pm 05:16 PM

3月22日の当ウェブサイトのニュースによると、Deluxは人間工学に基づいた右利き用形状のワイヤレスゲーミングマウス「M900Pro」を発売し、初回先行販売価格は199元からとなっている。カラフルな M900Pro は、右利き用の人間工学に基づいて設計されており、中程度から大きな手を持つユーザー向けに作られており、重量は 63 g で、マット UV コーティングがスプレーされています。マウスはPAW3395センサーを使用し、オリジナルのNanoレシーバーは8000Hzのワイヤレスリターンレートをサポートし、Huannuoブルーシェルピンクドットマイクロムーブメントを搭載し、RGB充電ベースと滑り止めステッカーが標準装備されています。さらに、LOD調整、フルキーカスタマイズ、カスタムリップルコントロール、直線補正などの機能にも対応しており、PTFEフットパッド、1.6mのパラコードコード、内蔵レシーバー収納部を備えています。このサイトでは、このマウスの具体的なパラメータを次のようにまとめています。 色: 黒、白、赤

マウスウェイトブロックの取り付け方法 マウスウェイトブロックの取り付け方法 Mar 01, 2024 am 09:20 AM

マウス カウンターウェイトを購入した後、操作感と安定性を高めるには、どのように取り付ければよいですか?操作方法がわからない友達もいます。今日は、このマウス カウンターウェイトの取り付け方法を説明します。マウスウェイトブロックの取り付け方法: 1. マウスの下に磁石があり、下に開きます。 2. 次に、ピンセットを使用してウェイトボックスを開けます。 3. 次に、マウスの下にウェイト ブロックを置きます。 4. 最後に、マウスの安定性が向上しました。

WIN10でマウスが制御不能になった場合の対処方法 WIN10でマウスが制御不能になった場合の対処方法 Mar 27, 2024 pm 12:31 PM

1. [win+x] キーの組み合わせを押してシステム ショートカット メニューを開き、[コンピュータの管理] をクリックします。 2. ワンタイム拡張: タスク スケジューラ タスク スケジューラ ライブラリ Microsoft Windows Stpm。 3. ウィンドウの右側にある [tmp メンテナンス タスク] を見つけて無効にします。

See all articles