シンプルなドラッグ効果を実現する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データベースに接続する方法を説明します

推薦する

Docker 自動ビルド 自動ビルド実装プロセス図

自動ビルドとは、Docker Hub を使用して、Dockerfile ファイルを含む GitHub...

大量のデータをMySQLにインポートする際に発生する問題と解決策の分析

プロジェクトでは、SQL を使用してデータ分析を実行するために、大量のデータをデータベースにインポー...

IE 環境での css-vars-ponyfill の使用に関する詳細な説明 (nextjs ビルド)

css-vars-ポニーフィルCSS 変数を使用して Web ページのスキニングを実現すると、互換...

Linux コマンドにおける Ctrl+z、Ctrl+c、Ctrl+d の違いと使い方

Linux で Ctrl+c、Ctrl+d、Ctrl+z はどういう意味ですか? Ctrl+c と ...

MACでMYSQLデータベースのパスワードを忘れた場合の解決策

Mac オペレーティングシステムで MYSQL データベースのパスワードを忘れた場合の簡単な解決策1...

nginx のロケーションで URI の傍受を実装する方法

例:場所のルートとエイリアスルートディレクティブは、ルートによって設定されたディレクトリに検索ルート...

Centos サーバーに MySql をデプロイし、Navicat に接続するプロセスの詳細な説明

(1)サーバー構成: [root@localhost ~]# cd /usr/local/src/ ...

DPlayer.js ビデオ再生プラグインの使い方

DPlayer.jsビデオプレーヤープラグインは使いやすい主な用途: ビデオの再生、監視の開始、終了...

純粋なJSを使用してセカンダリメニュー効果を実現します

この記事の例では、セカンダリメニュー効果を実現するためのJSの具体的なコードを参考までに共有していま...

MySQL で特定の日、月、または年のデータをクエリするためのコードの詳細な説明

今日 テーブル名から * を選択します。ここで、to_days(時間フィールド名) = to_day...

Dockerイメージを素早くデプロイして実行する最新のIDEAプロセスの詳細な説明

背景docker とアイデアを使用して、Java Web の開発、展開、運用までのプロセス全体を実現...

JavaScript初心者がよく犯す間違い

目次序文undefined と null の混同紛らわしい数値の加算と文字列の連結戻り文の改行の問題...

Vue で rem 適応を使用する方法

1. 開発環境vue 2. コンピュータシステム Windows 10 Professional E...

Vue の大容量ファイルアップロードとブレークポイント再開アップロードの実装

目次ファイルアップロードのための2つのソリューションファイルストリーム(フォームデータ)に基づくクラ...

Presto をインストールし、Docker で Hive を接続する詳細なプロセス

1. はじめにPresto は、ギガバイトからペタバイトに及ぶデータ ソースに対してインタラクティブ...