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

Detailed steps to install the specified version of docker (1.12.6) using rpm

1. Reasons If the system is Centos7.3, the Docker...

CSS Tricks to Create Wave Effects

It has always been very difficult to achieve wave...

Explanation on whether to choose paging or loading in interactive design

The author of this article @子木yoyo posted it on hi...

Summary of @ usage in CSS (with examples and explanations)

An at-rule is a declaration that provides instruc...

javascript input image upload and preview, FileReader preview image

FileReader is an important API for front-end file...

Mysql optimization techniques for querying dates based on time

For example, to query yesterday's newly regis...

How to use CSS to center a box horizontally and vertically (8 methods)

Original code: center.html : <!DOCTYPE html>...

Vue opens a new window and implements a graphic example of parameter transfer

The function I want to achieve is to open a new w...

Use neat HTML markup to build your pages

The Internet is an organism that is constantly ev...

Installation tutorial of mysql8.0rpm on centos7

First, download the diagram 1. First uninstall th...

Tutorial diagram of installing TomCat in Windows 10

Install TomCat on Windows This article will intro...

Web Design Principles of Hyperlinks

<br />Related articles: 9 practical tips for...

Detailed process of zabbix monitoring process and port through agent

Environment Introduction Operating system: centos...