拖拽复制案例

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Title</title>

<style>

*{

margin:0;

padding:0;

}

#demo{

width:300px;

height:400px;

background-color: blue;

position: absolute;

margin-left:-150px;

left:50%;

top:50%;

margin-top:60px;

}

#demo1{

width:100%;

height:100px;

background-color: red;

cursor: move;

}

</style>

</head>

<body>

<div id="demo">

<div id="demo1"></div>

</div>

</body>

</html>

<script>

//1注册事件

window.onload = function () {

//1,获取操作元素

const demo = document.querySelector("#demo");

const demo1 = document.querySelector("#demo1");

//2,然后注册鼠标按下的事件---根据事件对象来处理

demo1.onmousedown = function (e) {

e = e||window.event;

//1,获取盒子里面的位置信息--当前盒子的

const boxX = getPage(e).pageX-demo.offsetLeft;

const boxY = getPage(e).pageY-demo.offsetTop;

//2然后注册一个鼠标移动的事件

document.onmousemove = function (e) {

e = e||window.event;

const x = getPage(e).pageX - boxX;

const y = getPage(e).pageY - boxY;

//然后赋值回去

// demo.style.left = (x+150)+"px";

// demo.style.top = (y-60)+"px";

//克隆一个元素

const News = demo.cloneNode(true);

//最后处理完了之后就是设置清除事件---就是设置对象的值为null

document.onmouseup = function (e) {

e = e||window.event;

//设置位置信息

News.style.left = (x+150)+"px";

News.style.top = (y-60)+"px";

//追加到页面

document.documentElement.appendChild(News);

//设置颜色变化

News.style.background = "purple";

document.onmousemove = null;

};

};

//然后封装一个page事件

function getPage(e) {

return{

pageX:e.pageX||e.clientX+document.documentElement.scrollLeft,

pageY:e.pageY||e.clientY+document.documentElement.scrollTop

}

}

};

}

</script>

时间: 2024-12-17 15:52:19

拖拽复制案例的相关文章

Html5拖拽复制

拖拽是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖拽是标准的一部分,任何元素都能够拖拽. Html5拖拽非常常见的一个功能,但是大部分拖拽的案例都是一个剪切的过程, 项目中需要实现Html5拖拽复制的功能,Html5拖拽复制很简单,只需要在普通Html5拖拽的过程中做一点小小的改动即可. ps: 本篇博文为非首页文章,只是简单的笔记. 浏览器支持 Internet Explorer 9 Firefox Opera 12 Chrome Safari 5 v1.0代码部分

JS实现拖拽小案例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>简单的拖拽</title> <link rel="stylesheet" href="../toolkit/reset.min.css"> <style> #box{ height: 200px

只能在方块内拖拽的案例

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style> #aa{ width:500px; height:500px; border:red 1px solid; margin:100px auto; position:relative; /*padding:2px;*/ } #dd{ width:100px

JS Web API 拖拽对话框案例

<style> .login-header { width: 100%; text-align: right; height: 30px; font-size: 24px; line-height: 30px; margin-left: -100px; } ul, li, ol, dl, dt, dd, div, p, span, h1, h2, h3, h4, h5, h6, a { padding: 0px; margin: 0px; } .login { width: 512px; po

微信小程序~触摸相关事件(拖拽操作、手势识别、多点触控)

touchstart     手指触摸动作开始 touchmove    手指触摸后移动 touchcancel  手指触摸动作被打断,如来电提醒,弹窗 touchend      手指触摸动作结束 拖拽操作案例1: 注意按钮拖出屏幕边缘处理 <view id="id" bindtouchmove="handletouchmove" class='demo' style='top:{{ballTop}}px; left: {{ballLeft}}px'>

VM虚拟机无法拖拽、粘贴、复制

VM无法从客户机拖放/复制文件到虚拟机的解决办法: 将这两项取消勾选,点击[确定].再次打开,勾选,点击[确定] 原因分析:可能是VM中默认是不支持该功能的,但是在配置窗体上确实默认打钩打上的. 依据:在操作过程中,你可以查看该虚拟机的的配置文件(*.vmx).观察以下节点 isolation.tools.copy.disable = "FALSE" isolation.tools.dnd.disable = "FALSE" isolation.tools.past

Blend4精选案例图解教程(三):一键拖拽

原文:Blend4精选案例图解教程(三):一键拖拽 拖拽效果,常规实现方法是定义MoveLeftDwon.MoveLeftUp.MouseMove事件,在Blend的世界里,实现对象的拖拽,可以不写一行代码,而且非常简单,本次教程跟大家分享这个技巧. 1.新建项目,在默认设计视图添加一个元素,这里添加一个图片 视图树 设计视图 2.在资源面板(Asset)中,找到Behavior分类,选择MouseDragElementBehavior,从名字上我们就应该能理解这个行为实现的功能 3.把选中的行

拖拽+重叠+虚线框(解决移动文字复制问题)

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>拖拽+重叠+虚线框(解决移动文字复制问题)</title> <meta name="descriptio

HTML5 CSS3 经典案例:无插件拖拽上传图片 (支持预览与批量) (二)

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/31513065 上一篇已经实现了这个项目的整体的HTML和CSS: HTML5 CSS3 经典案例:无插件拖拽上传图片 (支持预览与批量) (一) 这篇博客直接在上篇的基础上完成,最终效果: 效果图1: 效果图2: 好了,请允许我把图片贴了两遍,方便大家看效果了~ 可以看出我们的图片的li的html其实还是挺复杂的,于是我把html文档做了一些修改: <span style=&quo