シンプルなドラッグ効果を実現するJavaScript

シンプルなドラッグ効果を実現するJavaScript

この記事では、簡単なドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

1. まず足場を構築します。

* {
            マージン: 0;
            パディング: 0;
        }
        
        p {
            背景: スカイブルー;
            テキスト配置: 中央;
        }
        
        html,
        体 {
            幅: 100%;
            高さ: 100%;
        }
        
        。マスク {
            幅: 100%;
            高さ: 100%;
            位置: 固定;
            左: 0;
            上: 0;
            背景: rgba(0, 0, 0, .5);
            表示: なし;
        }
        
        。ログイン {
            幅: 400ピクセル;
            高さ: 300px;
            背景:紫;
            位置: 絶対;
            左: 50%;
            上位: 50%;
            変換: translate(-50%, -50%);
            表示: なし;
            カーソル: 移動;
        }
        
        .ログイン>スパン{
            表示: インラインブロック;
            幅: 50px;
            高さ: 50px;
            背景: 赤;
            位置: 絶対;
            上: 0;
            右: 0;
        }
<p>私はpタグです</p>
    <a href="http://www.baidu.com" >公式サイト</a>
    <div class="mask"></div>
    <div class="ログイン">
        <span></span>
</div>

2. 論理部分

//1. 操作対象となる要素を取得します。const oP = document.querySelector("p");
const oMask = document.querySelector(".mask");
const oLogin = document.querySelector(".login");
const oClose = oLogin.querySelector(".login>span");
// コンソールログ(oClose);
 
//2. クリックイベントをリッスンする oP.onclick = function() {
    oMask.style.display = "ブロック";
    oLogin.style.display = "ブロック";
        };
        oClose.onclick = 関数() {
            oMask.style.display = "なし";
            oLogin.style.display = "なし";
        };
 
//3. ログインボックスの押下と移動のイベントをリッスンする oLogin.onmousedown = function(e) {
            e = e || e.window;
 
            //1. 固定距離を計算します。const x = e.pageX - oLogin.offsetLeft;
            定数 y = e.pageY - oLogin.offsetTop;
            // コンソールログ(x);
 
            //2. モバイルイベントをリッスンする oLogin.onmousemove = function(e) {
                e = e || e.window;
 
                //3. 移動後のオフセットを計算します。let offsetX = e.pageX - x;
                offsetY = e.pageY - y とします。
 
                //4. ログイン ボックスの位置をリセットします。oLogin.style.left = offsetX + 'px';
                oLogin.style.top = offsetY + 'px';
            };
        };
 
        oLogin.onmouseup = 関数() {
            oLogin.onmousemove = null;
        }; 

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

以下もご興味があるかもしれません:
  • JQuery ダイアログ (JS モーダル ウィンドウ、ドラッグ可能な DIV)
  • Sortable.js ドラッグアンドドロップソートの使い方の分析
  • ドラッグ効果を実現するjs
  • JavaScript でモバイル端末のタッチスクリーンドラッグ機能を実装
  • js を使用して実装されたシンプルなドラッグ効果
  • JS は美しいウィンドウのドラッグ効果を実現します (サイズの変更、最大化、最小化、閉じるなど)
  • JS で実装したファイルのドラッグ アンド ドロップ アップロード機能の例
  • JavaScript を使用してマウス ドラッグ イベントを実装する
  • JS コンポーネント Bootstrap Table テーブル行ドラッグ効果実装コード
  • JSはモバイルデバイス上のタッチスクリーンドラッグ機能を実装します

<<:  IE をフリーズさせる HTML コード

>>:  Eclipseを使用してMySQLデータベースに接続する方法を説明します

推薦する

Nginx サーバーの https 設定方法の例

Linux: Linux バージョン 3.10.0-123.9.3.el7.x86_64 ngin...

MySQL の current_timestamp の落とし穴とその解決策を共有する

目次MySQL の current_timestamp の落とし穴エラーを報告する私の解決策mysq...

jQueryブリージングカルーセルの制作原理を詳しく解説

この記事では、jQueryブリージングカルーセル制作原理の具体的なプロセスを参考までに紹介します。具...

6ull が Linux ドライバ モジュールをロードできない問題の解決方法

目次0x01 ドライバーモジュールのロードに失敗しました0x02 ソリューション要約する0x01 ド...

Ubuntu 19.10 で ssh サービスを有効にする (詳細なプロセス)

Ubuntuでsshを開くのに1時間以上かかりました。主な原因は、最初に読んだチュートリアルの手順...

mysql ローカルログインでポート番号を使用してログインできない問題の解決策

最近、Linux を使用してローカルにログインしていたところ、正常にログインできず、次のエラー メッ...

Jupyter Notebook で JavaScript を実行する方法

その後、VSC で Jupyter Notebook を使用する方法も追加しました...アナコンダを...

MySQL で特殊文字を含むデータベース名を作成する方法の例

序文この記事では、MySQL で特殊文字を使用してデータベース名を作成する方法について説明します。こ...

Linux での感嘆符コマンド (!) の使用の概要

序文最近、弊社では mbp の設定をしており、ssh を使うことが多くなりました。複雑なコマンドを書...

WeChatアプレットシングルページアプリケーションルーティングを徹底的に理解するための10分

シングルページアプリケーションの特徴「前提:」Web ページには、クリックするとサイト内の他のページ...

moment.jsの時間と日付の処理の詳細な説明

月曜日から日曜日の時間形式の変換(Y --- 年 M --- 月 D--- 日) : : : : :...

一般的なSQL削除ステートメントの原則の違いを理解するだけです

この記事では主に、SQL 削除ステートメント DROP、TRUNCATE、および DELETE の違...

OpenLayers 3 のベクターマップソースの読み込みの問題を解決する

1. ベクターマップベクター グラフィックスは直線と曲線を使用してグラフィックスを表します。これらの...

Docker での MySQL 8.0.20 のインストールと設定のチュートリアル

Dockerは参考までにMySQLバージョン8.0.20をインストールします。具体的な内容は以下のと...

MySQLでホワイトリストアクセスを設定する方法

MySQLでホワイトリストアクセスを設定する手順1. ログイン mysql -uroot -pmys...