JavaScript to achieve simple drag effect

JavaScript to achieve simple drag effect

This article shares the specific code of JavaScript to achieve a simple drag effect for your reference. The specific content is as follows

1. Build the scaffolding first:

* {
            margin: 0;
            padding: 0;
        }
        
        p {
            background: skyblue;
            text-align: center;
        }
        
        html,
        body {
            width: 100%;
            height: 100%;
        }
        
        .mask {
            width: 100%;
            height: 100%;
            position: fixed;
            left: 0;
            top: 0;
            background: rgba(0, 0, 0, .5);
            display: none;
        }
        
        .login {
            width: 400px;
            height: 300px;
            background: purple;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            display: none;
            cursor: move;
        }
        
        .login>span {
            display: inline-block;
            width: 50px;
            height: 50px;
            background: red;
            position: absolute;
            top: 0;
            right: 0;
        }
<p>I am a p tag</p>
    <a href="http://www.baidu.com" >Official website</a>
    <div class="mask"></div>
    <div class="login">
        <span></span>
</div>

2. Logical part

//1. Get the element to be operated const oP = document.querySelector("p");
const oMask = document.querySelector(".mask");
const oLogin = document.querySelector(".login");
const oClose = oLogin.querySelector(".login>span");
// console.log(oClose);
 
//2. Listen for click events oP.onclick = function() {
    oMask.style.display = "block";
    oLogin.style.display = "block";
        };
        oClose.onclick = function() {
            oMask.style.display = "none";
            oLogin.style.display = "none";
        };
 
//3. Listen for the press and move events of the login box oLogin.onmousedown = function(e) {
            e = e || e.window;
 
            //1. Calculate the fixed distance const x = e.pageX - oLogin.offsetLeft;
            const y = e.pageY - oLogin.offsetTop;
            // console.log(x);
 
            //2. Listen for mobile events oLogin.onmousemove = function(e) {
                e = e || e.window;
 
                //3. Calculate the offset after moving let offsetX = e.pageX - x;
                let offsetY = e.pageY - y;
 
                //4. Reset the position of the login box oLogin.style.left = offsetX + 'px';
                oLogin.style.top = offsetY + 'px';
            };
        };
 
        oLogin.onmouseup = function() {
            oLogin.onmousemove = null;
        }; 

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • JQuery Dialog (JS modal window, draggable DIV)
  • Analysis of how to use Sortable.js drag and drop sorting
  • js to achieve drag effect
  • JavaScript implements touch screen drag function on mobile terminal
  • Simple drag effect implemented using js
  • JS realizes beautiful window drag effect (can change size, maximize, minimize, close)
  • Example of file drag and drop upload function implemented by JS
  • Using javascript to implement mouse drag events
  • JS component Bootstrap Table table row drag effect implementation code
  • JS implements the touch screen drag function on mobile devices

<<:  HTML code that can make IE freeze

>>:  Teach you to connect to MySQL database using eclipse

Recommend

Centos6.9 installation Mysql5.7.18 step record

Installation sequence rpm -ivh mysql-community-co...

Linux Centos8 Create CA Certificate Tutorial

Install Required Files Yum install openssl-* -y C...

Vue+openlayer5 method to get the coordinates of the current mouse slide

Preface: How to get the coordinates of the curren...

About scroll bar in HTML/removing scroll bar

1. The color of the scroll bar under xhtml In the ...

Webpack file packaging error exception

Before webpack packaging, we must ensure that the...

3 methods to restore table structure from frm file in mysql [recommended]

When mysql is running normally, it is not difficu...

Specific use of nginx keepalive

The default request header of the http1.1 protoco...

IDEA configuration process of Docker

IDEA is the most commonly used development tool f...

Some suggestions on Vue code readability

Table of contents 1. Make good use of components ...

Solution to 1045 error in mysql database

How to solve the problem of 1045 when the local d...

Detailed explanation of the principle of js Proxy

Table of contents What is Proxy Mode? Introducing...

Summary of various postures of MySQL privilege escalation

Table of contents 1. Write Webshell into outfile ...

MySQL Tutorial: Subquery Example Detailed Explanation

Table of contents 1. What is a subquery? 2. Where...

MAC+PyCharm+Flask+Vue.js build system

Table of contents Configure node.js+nvm+npm npm s...