原生JS實現(xiàn)拖拽位置預(yù)覽
更新時間:2021年10月19日 08:59:53 作者:aiguangyuan
這篇文章主要為大家詳細介紹了原生JS實現(xiàn)拖拽位置預(yù)覽,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文給大家分享一個拖拽元素時添加預(yù)覽的小Demo,效果如下:

以下是代碼實現(xiàn),歡迎大家復(fù)制粘貼及吐槽。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>原生JS實現(xiàn)拖拽位置預(yù)覽</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;
//創(chuàng)建一個虛線框的div
var oNewDiv = document.createElement('div');
oNewDiv.className = 'box';
//減去邊框的大小與原div大小重合
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;
//移除虛線框
document.body.removeChild(oNewDiv);
};
};
};
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
webpack4之SplitChunksPlugin使用指南
這篇文章主要介紹了webpack4之SplitChunksPlugin使用指南,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
值得分享和收藏的xmlplus組件學(xué)習(xí)教程
值得分享和收藏的xmlplus組件學(xué)習(xí)教程,xmlplus是一個設(shè)計非常獨特 JavaScript 框架,用于快速開發(fā)前后端項目,感興趣的小伙伴們可以參考一下2017-05-05
微信小程序頁面調(diào)用自定義組件內(nèi)的事件詳解
這篇文章主要介紹了微信小程序頁面調(diào)用自定義組件內(nèi)的事件詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09
原生javascript實現(xiàn)文件異步上傳的實例講解
下面小編就為大家?guī)硪黄鷍avascript實現(xiàn)文件異步上傳的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
利用JavaScript實現(xiàn)網(wǎng)頁版2048小游戲
這篇文章主要介紹了如何利用HTML+CSS+JS編寫一個網(wǎng)頁版的2048小游戲,代碼簡單易懂對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-11-11
使用js實現(xiàn)將后臺傳入的json數(shù)據(jù)放在前臺顯示
今天小編就為大家分享一篇使用js實現(xiàn)將后臺傳入的json數(shù)據(jù)放在前臺顯示,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08

