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

推薦する

サーバーの購入と初期構築方法

しばらくサーバーいじってなかったけど、やることがなくなったのでモバイルワークスに行って海外サーバーを...

MySQL のインデックスと制約の例文

外部キーテーブルの主キーがどのテーブルの外部キーであるかを照会する 選択 テーブル名、 列名、 制約...

TypeScript で時間を費やした場所の概要

TS で時間を過ごした場所をいくつか記録します。 (まず、文句を言わせてください。stackover...

Linux シェル環境での Zabbix API の使用

Linux シェル環境で直接呼び出すことができます。公式 Web サイトによると、Zabbix のデ...

VMware 仮想マシンに Android x86 をインストールする方法

アプリをテストしたいが、それを携帯電話で実行したくない場合があります。この場合、仮想マシンを使用して...

Nginx での SSL 証明書のインストールと展開手順の概要

目次問題の説明:インストール手順1. 準備2. サーバーにリモート接続する3. 証明書と秘密鍵ファイ...

vue3のテレポート瞬間移動機能の使い方を詳しく解説

vue3テレポート瞬間移動機能の使用は参考用です。具体的な内容は次のとおりです。テレポートは通常、瞬...

mysqlはエクスポートされたデータのsqlファイルから指定されたテーブルのみをインポートすることを実装します

シナリオ昨日、システムは dbAll.sql.gz という名前の特定のデータベースのすべてのテーブル...

MySql マスタースレーブレプリケーションメカニズムの包括的な分析

目次マスタースレーブレプリケーションメカニズム非同期レプリケーション準同期レプリケーションマスタース...

js を使用してファイルが UTF-8 でエンコードされているかどうかを判断する方法

従来の解決策FileReader を使用して UTF-8 形式のファイルを読み取り、ファイルの内容に...

JavaScript でフォロー広告を実装するためのサンプルコード

フローティング広告は、ウェブサイト上で非常に一般的な広告形式です。フローティング広告は、ユーザーの閲...

WeChatアプレットのスクロールビューが左右にスライドできない問題を解決する方法

私は現在、自分自身の小さなプログラム プロジェクトに取り組んでいます。プロフェッショナルなフロントエ...

SQL 実践演習: オンライン モール データベース ユーザー情報データ操作

オンラインショッピングモールデータベース - ユーザー情報データ運用プロジェクトの説明電子商取引の台...

Vue+elementuiはドロップダウンテーブルの複数選択と検索機能を実現します

この記事では、ドロップダウンテーブルの複数選択と検索を実現するためのvue+elementuiの具体...