用原生JS怎么实现可拖拽并添加预览的效果
Admin 2022-06-24 群英技术资讯 1342 次浏览
这篇文章给大家分享的是用原生JS怎么实现可拖拽并添加预览的效果。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。本文给大家分享一个拖拽元素时添加预览的小Demo,效果如下:

以下是代码实现,欢迎大家复制粘贴及吐槽。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>原生JS实现拖拽位置预览</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;
//创建一个虚线框的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>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
状况:本地的前端项目(uni-app)以及后台管理(vue-mongo-node)和本地mongo数据库前台项目端口是8082,后台数据接口是8081.跨域解决,直接上代码:uni-app的mainfest.json下: 红色部分代理(node设置允许跨域之后,不加这部分的代理也可以跨域请求) 可加可不加"app-plus":{/*5+App特有相关*/"splashsc
用jQuery怎样实现隐藏表的列元素?隐藏表的列元素还是比较实用的,本文实现的需求是隐藏表格里的某一列,这里使用到的方法是hide(),实现步骤及代码如下,需要的朋友可以参考,接下来跟随小编一起来学习一下吧。
jQuery中有什么方法增加class的属性?对于jQuery中增加class的属性的方法,这里给大家介绍addClass()方法,这是 jquery提供一个添加class类的方法,接下来我们那就来具体的了解看看,addClass()方法怎样实现增加class。
简单的说Node.js就是运行在服务端的JavaScript。Node.js是一个基于Chrome JavaScript运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好
这篇文章主要给大家分享 JavaScript中document.activeELement焦点元素介绍,下面文章围绕了document.activeElement属性展开详细内容,需要的朋友可以参考一下,希望对大家有所帮助
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008