オフセットOffset はオフセットです。関連プロパティの offset シリーズを使用すると、次のように要素の位置 (オフセット)、サイズなどを動的に取得できます。 オフセット シリーズでよく使用される属性は次のとおりです。 オフセットとスタイルの違い
ケース1: マウス座標のリアルタイム表示デモ <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8" /> <meta http-equiv="X-UA-compatible" content="IE=edge" /> <meta name="viewport" content="width=デバイス幅、初期スケール=1.0" /> <title>マウスの位置を取得する-01</title> <スタイル> 。箱 { 幅: 500ピクセル; 高さ: 500px; 背景色: #55aaff; 左マージン: 50px; } </スタイル> </head> <本文> <p>ボックス内のマウス座標を取得します</p> <div class="box"></div> <スクリプト> // ボックス内をクリックし、マウスとボックス間の距離を取得します // 実装: // 1. ページ上のマウスの座標を取得します。e.pageX、e.pageY // 2. ボックスからページまでの距離を取得する、box.offsetLeft、box.offsetTop // 3. 2 つを減算すると、ボックス内のマウスの座標が得られます // 実装プロセスを以下で見てみましょう。 定数ボックス = document.querySelector(".box"); box.addEventListener("mousemove", 関数(e) { // コンソールログ(e.pageX, e.pageY); // console.log(box.offsetLeft、box.offsetTop); 定数 x = e.pageX - this.offsetLeft; 定数 y = e.pageY - this.offsetTop; box.textContent = `x: ${x}, y: ${y}`; }); </スクリプト> </本文> </html> ケース2: ドラッグモジュールデモ <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8" /> <meta http-equiv="X-UA-compatible" content="IE=edge" /> <meta name="viewport" content="width=デバイス幅、初期スケール=1.0" /> <title>モジュールドラッグ-02</title> <スタイル> * { マージン: 0; パディング: 0; } 。ログイン、 .モーダル{ 表示: なし; } 。ログイン { 幅: 512ピクセル; 高さ: 280px; 位置: 固定; 境界線: #ebebeb 実線 1px; 左: 50%; 上位: 50%; 背景色: #fff; ボックスシャドウ: 0 0 20px #ddd; zインデックス: 999; 変換: translate(-50%, -50%); テキスト配置: 中央; } .モーダル{ 位置: 絶対; 上: 0; 左: 0; 幅:100vw; 高さ:100vh; 背景色: rgba(0, 0, 0, 0.3); zインデックス: 998; } .ログインコンテンツ{ マージン: 100px 自動; テキスト配置: 中央; } .ログインコンテンツ h3:hover, .closeBtn:ホバー{ カーソル: ポインタ; } .closeBtn{ 位置: 絶対; 右: 10px; 上: 10px; } .ログインh4{ 上マージン: 10px; } .ログイン h4:hover { カーソル: 移動; } </スタイル> </head> <本文> <div class="ログインコンテンツ"> <h3 id="openLogin">クリックするとシミュレーション ボックスがポップアップします</h3> </div> <div class="ログイン"> <div class="closeBtn" id="closeBtn">閉じる</div> <h4 class="loginHeader">クリックしてドラッグ</h4> </div> <div class="modal"></div> <スクリプト> // 要素を取得します const login = document.querySelector(".login"); 定数 modal = document.querySelector(".modal"); 定数 closeBtn = document.querySelector("#closeBtn"); 定数 openLogin = document.querySelector("#openLogin"); // 表示要素をクリックします openLogin.addEventListener("click", () => { modal.style.display = "ブロック"; login.style.display = "ブロック"; }); closeBtn.addEventListener("クリック", () => { modal.style.display = "なし"; login.style.display = "なし"; }); // ドラッグ アンド ドロップ機能を実装します // 1. マウスを押してボックス内のマウスの座標を取得します const loginHeader = document.querySelector(".loginHeader"); loginHeader.addEventListener("mousedown", 関数(e) { 定数 x = e.pageX - login.offsetLeft; 定数 y = e.pageY - login.offsetTop; 定数移動 = 関数 (e) { login.style.left = `${e.pageX - x}px`; login.style.top = `${e.pageY - y}px`; }; // 2. マウスを移動します document.addEventListener("mousemove", move); document.addEventListener("mouseup", 関数() { document.removeEventListener("mousemove"、移動); }); }); </スクリプト> </本文> </html> これで、JavaScript オフセットを使用してマウス座標を取得し、ウィンドウ内でモジュールをドラッグする方法についての説明は終わりです。JavaScript を使用してマウス座標を取得し、ウィンドウ内でモジュールをドラッグする方法についての詳細は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: 88 秒で 1,000 万件のレコードを MySQL データベース テーブルに挿入する方法
>>: Nginxはリバースプロキシを使用して負荷分散プロセス分析を実装します
背景一部のショッピング モールの Web ページで商品の詳細を開くと、購入数量を選択するためのカウン...
デフォルトでは、ラベルとスパンの幅の設定は無効です。一般的に、表示属性は必須ですコードをコピーコード...
目次1. Ubuntuソースの変更2. MySQLをインストールする3. 新しいユーザーを作成し、権...
インデックスにクエリする必要があるすべてのフィールドの値が含まれている(またはカバーしている)場合、...
目次1. ブリッジを設定し、検証のためにパケットをキャプチャする1. ブリッジデバイスとセッションを...
前の単語line-height、font-size、vertical-align は、インライン要素...
MySQL 複数の無関係なテーブルクエリデータとページング機能要件主キーと外部キーの関連付けがない ...
目次1. 構造指示モジュールforRoot()を書く3. スタイルの定義ドラッグ時の順序を調整するに...
少なくとも 5 冊のベストセラー書籍の順序なしリストを含む HTML ページを作成します。各書籍の前...
質問1 解決するサービスを開始します: service mysqld start; /sbin/ip...
次のコードは、MySQL が 1 つのテーブルのデータに基づいて別のテーブルのいくつかのフィールドを...
目次スプレッド演算子を使用してプロパティを渡すのは避けてください関数パラメータをオブジェクトにカプセ...
CS: ... 1. <link type="text/css" href...
よく聞かれる答えは、列に NULL 値を使用するとインデックスが無効になるというものですが、実際にテ...
目次1. リソースのダウンロード2. ソフトウェアを解凍する2.1 場所を選択する2.2 名前を変更...