JavaScript は自由に移動するウィンドウのマウス制御を実装します

JavaScript は自由に移動するウィンドウのマウス制御を実装します

この記事では、フリーウィンドウのマウス制御を実現するためのJavaScriptの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

コード:

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>マウスでウィンドウを移動しました</title>
    <スタイル>
        .mainDiv {
            幅: 350ピクセル;
            高さ: 200px;
            境界線: 2px 黒実線;
            位置: 絶対;
        }

        .titleDiv {
            幅: 350ピクセル;
            高さ: 30px;
            背景色: 黄緑;
            テキスト配置: 中央;
            行の高さ: 30px;
        }

        .contentDiv {
            幅: 350ピクセル;
            高さ: 170ピクセル;
            背景色: SandyBrown ;
            テキスト配置: 中央;
        }
    </スタイル>
</head>
<本文>
<!--onmousedown: マウス ボタンが押されたときにイベントが発生します。onmousemove: マウス ポインターが指定されたオブジェクトに移動したときにイベントが発生します -->
<div class="mainDiv" id="mainDiv" style="上: 20px;左: 20px">
    <div class="titleDiv" id="titleDiv" onmousedown="mouseDown()" onmouseup="mouseUp()">
        タイトルバー</div>
    <div class="contentDiv">
        《マウスで操作できるフリーウィンドウ》<br>
        注意: MainDiv は、位置が絶対位置に設定されるまで移動できません</div>
</div>
<スクリプト>
    var dx;
    var dy;
    var mainDivObj = null;
    var titleDivObj = null;

    /**
     * マウス押下関数、マウスが押されたときにこの関数を実行します*/
    関数mouseDown() {
        //マウスボタンの値を取得します。0 はマウスの左ボタン、1 はマウスのスクロールボタン、2 はマウスの右ボタンです。if (event.button == 0) {
            mainDivObj = document.getElementById("mainDiv");
            titleDivObj = document.getElementById("titleDiv");
            //マウス スタイルを設定します titleDivObj.style.cursor = "move";
            //メイン div の影のスタイルを設定します mainDivObj.style.boxShadow = "0px 0px 10px #000";
            //マウスの現在の座標を取得します。let x = event.x;
            y = event.y とします。
            dx = x - parseInt(mainDivObj.style.left);
            dy = y - parseInt(mainDivObj.style.top);

        }
    }

    //マウスが移動したときに呼び出します document.onmousemove = mouseMove;

    /**
     * マウスを押すと関数が移動します。マウスが移動すると、divを移動する関数が実行されます。
     */
    関数mouseMove() {
        mainDivObj != null の場合 {
            //現在のマウスの動きの座標位置を取得します。let x = event.x; //マウスの動きの x 軸座標 let y = event.y; //マウスの動きの y 軸座標 //移動後の div の左と上との距離を計算します //現在の座標を使用して、div 内のマウスの位置と div の左と上との距離を減算します。let left = x - dx;
            top = y - dyとします。
            //div の新しい座標位置を設定します。mainDivObj.style.left = left + "px";
            mainDivObj.style.top = top + "px";
        }
    }
    /**
     * マウスリリース関数、マウスがリリースされたときにこの関数が実行されます*/
    関数 mouseUp() {
        mainDivObj != null の場合 {
            dx = null;
            dy = null;
            //div の影のスタイルを設定します mainDivObj.style.boxShadow="none";
            mainDivObj = null;
            titleDivObj.style.cursor="ポインター";
            titleDivObj = null;
        }
    }
</スクリプト>
</本文>
</html>

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

以下もご興味があるかもしれません:
  • C言語で4ウィンドウチャットを実装する
  • Javaスライディングウィンドウ最大値の実装
  • C# は QQ チャット ウィンドウを模倣します
  • 可視化ツール PyVista マルチスレッドによる複数ウィンドウの表示のサンプルコード
  • Pyqt5はウィンドウのスケーリングとウィンドウ内のコントロールの自動スケーリングを実装します
  • Android ウィジェットの基本コーディング例
  • Python クローラー用の Selenium マルチウィンドウ切り替えの実装
  • Javaウィンドウの詳細かつ包括的な説明

<<:  MySQL 自動インクリメント ID 枯渇の例

>>:  CentOS 6.8 での Hadoop 3.1.1 完全分散インストール ガイド (推奨)

推薦する

HTML の表の行と列を結合する問題の解決策の詳細な説明

私たちが構築しようとしていたウェブサイトには、長い文章だけでなく、多数の表も含まれており、表のレイア...

JConsoler を使って Tomcat の JVM メモリを監視する方法を説明します

目次1. Tomcatを監視する方法2. Java独自の監視コマンド3. Tomcatのトラブルシュ...

Centos8 でローカル Web サーバーを構築するための実装手順

1 概要システム Centos8 では、httpd を使用してローカル Web サーバーを構築します...

MySQLコマンドプロンプトで入力エラーが発生したときに前のコマンドを修正する方法

目次現在の問題解決プロセス具体的な手順解決した事件現在の問題MySQL コマンド プロンプトに複数行...

Vite+ElectronでVUE3デスクトップアプリケーションを素早く構築

目次1. はじめに2. Viteプロジェクトを作成する1. viteをインストールする2. プロジェ...

JavaScriptのプロトタイプオブジェクトを徹底的に理解しましょう

目次1. プロトタイプとは何ですか? 1.1 関数プロトタイプオブジェクト1.2 コンストラクタを使...

フロントエンドの vue+express ファイルのアップロードとダウンロードの例

新しいserver.jsを作成する糸初期化 -y 糸を追加エクスプレスノードモン -D var ex...

Linux ファイル管理コマンド例の分析 [権限、作成、削除、コピー、移動、検索など]

この記事では、Linux ファイル管理コマンドについて例を挙げて説明します。ご参考までに、詳細は以下...

小さなプログラムが天井に張り付いてしまう問題を完璧に解決するためにposition:stickyを使用する方法

最近、あるプロジェクトのクライアントが、上部に 2 つのタブ メニューを配置することを要求しました。...

Mysqlはストアドプロシージャを通じて文字列を配列に分割します

文字列を配列に分割するには、次の 3 つの MySQL 関数を使用する必要があります。 REVERS...

Firefox で Webdings フォントをサポートする方法

Firefox、Opera、その他のブラウザは Webdings フォントをサポートしていません。回...

CSS を使用してテクスチャ付きグラデーション背景画像を記述するためのサンプル コード

プロジェクト内のページの長さはおよそ2000px以上あり、背景画像にはテクスチャやグラデーションがあ...

Vue3 ページ、メニュー、ルートの使用

目次1. メニューをクリックしてジャンプ1. ページ名の統一2. 管理ページを追加3. ルートを追加...

数千万データを持つMySQLテーブルを最適化する実践記録

序文まずここで説明させてください。インターネット上では、Alibaba では 500 万のデータを異...

Vue プロジェクトで mock を使用する方法をご存知ですか?

目次最初のステップ: 2 番目のステップは、request.js で関連する構成を行うことです。re...