Native JS to implement drag position preview

Native JS to implement drag position preview

This article shares with you a small Demo that adds a preview when dragging an element. The effect is as follows:

The following is the code implementation, everyone is welcome to copy, paste and comment.

<!DOCTYPE html>
<html>
 
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Native JS to implement drag position preview</title>
    <style>
        .box {
            position: absolute;
            border: 1px dashed black;
        }
 
        #div1 {
            width: 100px;
            height: 100px;
            background: yellow;
            position: absolute;
        }
    </style>
    <script>
        window.onload = function () {
 
            var oDiv = document.getElementById('div1');
 
            oDiv.onmousedown = function (ev) {
 
                var oEvent = ev || event;
                var disX = oEvent.clientX - oDiv.offsetLeft;
                var disY = oEvent.clientY - oDiv.offsetTop;
 
                //Create a div with a dotted frame
                var oNewDiv = document.createElement('div');
 
                oNewDiv.className = 'box';
                // Subtract the border size to coincide with the original div size oNewDiv.style.width = oDiv.offsetWidth - 2 + 'px';
                oNewDiv.style.height = oDiv.offsetHeight - 2 + 'px';
                oNewDiv.style.left = oDiv.offsetLeft + 'px';
                oNewDiv.style.top = oDiv.offsetTop + 'px';
 
                document.body.appendChild(oNewDiv);
 
                document.onmousemove = function (ev) {
 
                    var oEvent = ev || event;
 
                    oNewDiv.style.left = oEvent.clientX - disX + 'px';
                    oNewDiv.style.top = oEvent.clientY - disY + 'px';
                };
 
                document.onmouseup = function () {
 
                    document.onmousemove = null;
                    document.onmouseup = null;
 
                    oDiv.style.left = oNewDiv.style.left;
                    oDiv.style.top = oNewDiv.style.top;
                    //Remove the dotted box document.body.removeChild(oNewDiv);
                };
            };
        };
    </script>
</head>
 
<body>
    <div id="div1"></div>
</body>
 
</html>

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:
  • JS HTML5 drag and drop upload image preview
  • JS implements three methods of uploading pictures and realizing the preview picture function
  • js to realize image upload and preview function
  • js method to realize the preview of uploaded pictures
  • JS preview image displays local images on the browser
  • js to upload pictures and preview them before uploading
  • Javascript local preview example before uploading image
  • js image preview function before uploading (compatible with all browsers)
  • Easily implement js image preview function
  • Analysis of the principle of picture upload preview using js

<<:  Implementation of docker view container log command

>>:  HTML table tag tutorial (19): row tag

Recommend

Analysis of the Linux input subsystem framework principle

Input subsystem framework The linux input subsyst...

Simple Implementation of HTML to Create Personal Resume

Resume Code: XML/HTML CodeCopy content to clipboa...

How to design MySQL statistical data tables

Table of contents Is real-time update required? M...

The main differences between MySQL 4.1/5.0/5.1/5.5/5.6

Some command differences between versions: show i...

In-depth explanation of MySQL user account management and permission management

Preface The MySQL permission table is loaded into...

How to create a view in MySQL

Basic syntax You can create a view using the CREA...

JavaScript implementation of verification code case

This article shares the specific code for JavaScr...

Vue two same-level components to achieve value transfer

Vue components are connected, so it is inevitable...

Detailed explanation of the correct way to open em in CSS

Why do we say “usually 1em=16px”? The default tex...

Nginx reverse proxy learning example tutorial

Table of contents 1. Reverse proxy preparation 1....

Detailed explanation of the update command for software (library) under Linux

When installing packages on an Ubuntu server, you...

Detailed steps to install MySQL on CentOS 7

In CentOS7, when we install MySQL, MariaDB will b...

MySQL database connection exception summary (worth collecting)

I found a strange problem when deploying the proj...

Detailed explanation of Linux copy and paste in VMware virtual machine

1. Linux under VMware Workstation: 1. Update sour...