用原生JS怎么实现可拖拽并添加预览的效果
Admin 2022-06-24 群英技术资讯 1145 次浏览
这篇文章给大家分享的是用原生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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
JS实现动态表格的内容,我们之前也有了解过,这篇文章主要给大家分享用JS实现学生成绩的动态表格的示例,实现效果及代码如下,有需要的朋友可以参考,接下来我们一起来学习一下吧。
jQuery中删除样式的方法是什么?对于删除样式我们可以利用removeAttr()方法和removeClass()方法,那么这两个方法具体是如何删除样式的呢?接下来我们一起来学习一下。
sockjs-node报错是啥原因?sockjs-node接口报错的原因有很多,可能是热加载功能失效,还可能是shadowsock代理、nodejs配置等等,要解决保持的问题,先判断出原因很重要的。针对下文的情况,我们来看看是什么原因及如何解决。
原生Ajax与JQuery Ajax,有不少朋友对此感兴趣,下面小编给大家整理和分享了相关知识和资料,易于大家学习和理解,有需要的朋友可以借鉴参考,下面我们一起来了解一下吧。
1、url(1)url.parse返回url对象的各种参数url.parse(url,true/false,true/false);//默认url.parse(url,false,false);1.第一个参数是url地址,2.第二个参数规定参数是对象还是'?='来构成query:?opt=1query:{opt:1}3.第三个参数是是否自动识别(url不完
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
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