HTML5中的对象的拖拽

拖拽:

draggable="true"页面上就能实现拖拽
事件:

ondragstart 拖拽开始事件
ondrag 拖拽中
ondragend 拖拽结束事件

投放区事件:

ondragenter 进入投放区
ondragover 投放区移动
ondragleave 离开投放区
ondrop 投放区投放

例文:

<head>
<meta charset="UTF-8">
<title></title>
<style>
#dropBlock{
width:300px;
height:300px;
position: absolute;
left:0;
top:0;
background: black;
}
#moveBlock{
width: 100px;
height:100px;
position: absolute;
background: red;
left:0;
top:300px;
}
</style>
</head>
<body>

<div id="dropBlock"></div>
<div id="moveBlock" draggable="true"></div>
</body>
<script src="js/drag.js"></script>
<script>
(function(){
var dropBlock = document.getElementById("dropBlock");
var moveBlock = document.getElementById("moveBlock");
var moveBlockInisPos = getDimensions(moveBlock);
var startPoint;
var moveBlockPos;
moveBlock.ondragstart = function(){
var e = getEventObject(e);
//获取鼠标点击时的坐标
startPoint = getPointerPositionInDocument(e)
//获取移动块的位置
moveBlockPos = getDimensions(moveBlock);
}
// moveBlock.ondrag = function(){
// console.log("拖拽中");
// }
// moveBlock.ondragend = function(){
// console.log("拖拽结束");
// }
// dropBlock.ondragenter = function(){
// console.log("进入投放区");
// }
dropBlock.ondragover = function(e){
console.log("投放区移动");
//阻止默认事件发生
e.preventDefault();
}
// dropBlock.ondragleave = function(){
// console.log("离开投放区");
// };
dropBlock.ondrop = function(){
var e = getEventObject(e);
var newPoint = getPointerPositionInDocument(e);
var distance = getPointerDistance(startPoint,newPoint);
moveBlock.style.left = (moveBlockPos.left + distance.x)+"px";
moveBlock.style.top = (moveBlockPos.top + distance.y)+"px";
}
dropBlock.ondragleave = function(){
console.log("离开投放区");
var e=getEventObject(e);

moveBlock.style.left = moveBlockInisPos.left + "px";
moveBlock.style.top = moveBlockInisPos.top + "px";
};
}())
</script>

时间: 2024-10-20 22:25:21

HTML5中的对象的拖拽的相关文章

C#中实现控件拖拽效果(How to DragDrop Control in C#)

当产品间需要交互实现数据传递,或产品需要从外部导入文件时,通过控件拖拽来实现是个不错的选择.在UI上支持控件拖拽,可极大提升用户体验.拖拽本身并不神秘,它的本质实际是一个数据交换的过程.控件接受从其他地方来的数据,并进行处理.数据交换有多种方法,Windows中剪贴板可能就是用的最多,但最不被注意的一种方法.下面介绍用C#实现控件拖拽,并通过剪切板交换数据. 对于拖拽的对象,需要在MouseDown或ItemDrag中调用DoDragDrop,传递要拖拽的数据对象并触发拖拽.总的来说,当用户调用

理解HTML5中Range对象

1.理解Range对象    重新来学习下HTML5中的Range对象和Selection对象,最近在维护富文本编辑器,感觉这方面的知识点很有用,所以趁着周末多学习下~  什么是Range对象? 在HTML5中,一个Range对象代表页面上的一段连续区域.可以通过如下语句创建一个空的Range对象.如下代码: var range = document.createRange(); 什么是Selection对象? 在HTML5中,每一个浏览器窗口都有一个Selection对象,代表用户鼠标在页面中

vue中实现百度地图拖拽地图定位功能

效果如果所示,拖动地图.中间图标不动,并且自动获取地图当前中心点的经纬度.然后就可以用经纬度做其他的操作了...首先查看了百度地图的api.能实现这个功能最贴近的就是marker.marker可以拖拽,但是地图却动不了,我还用了另外一种是自己自定义一个marker.并且让marker相对地图位置绝对定位,地图拖拽,marker不动,拖拽结束后使用marker.getposition来获取当前位置,但是有个问题.自定义的marker在地图拖动的时候就看不见了..应该是层级问题.让地图给挡住了..太

关于Unity中UGUI 图片实现拖拽功能

应用方法:将下面脚本挂载在需要拖拽功能的UI图片上即可 两种拖拽选择:A.中心拖拽(图片中心跟随鼠标位置)m_isPrecision为false: B.精准拖拽(图片被鼠标点击的位置跟随鼠标位置)m_isPrecision为true: 1 /************************************************* 2 * 项目名称:UGUI通用 3 * 脚本创建人:魔卡 4 * 脚本创建时间:2017.12.14 5 * 脚本功能:UI图片拖拽功能(将脚本挂载在需要拖放

openlayers中实现点的拖拽(modify),在layer中增加修改删除point。

最近忙着整地图,都忘记了总结来沉淀自己,自我检讨一下. 总结一下最近使用openlayer时学习的内容,先说下我的业务逻辑吧,在室内地图中 1,点击新增在地图上新增一个可以拖拽的点,拖拽完成后确定位置,添加其他数据,保存入库. 2,增加后展示点,点上面有序号. 3,修改时,当选中一条记录的时候需要地图上面的点高亮,这个时候可拖动位置,修改表单数据,修改后保存. 4,删除也是选中一条记录,记录删除地图点删除. 由于基于老版本开发的,本文中用到的方法都是openlayer4.6.5版本,具体问题还是

winform中文本框添加拖拽功能

对一个文本框添加拖拽功能: private void txtFolder_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { e.Effect = DragDropEffects.Link; this.txtFolder.Cursor = System.Windows.Forms.Cursors.Arrow;//指定鼠标形状 } else { e.Effect

HTML5开发 拖拽文件上传

Drag&Drop 拖拽功能的处理 关于HTML5拖拽文件上传,其实国外已经有很多网站有这样的应用,最早推出拖拽上传应用的是 Gmail,它支持标准浏览器下拖拽本地文件到浏览器中作为邮件的附件发送,但其实现在利用HTML5的功能实现,主要借助于新版支持的浏览器来实现,IE还是弱很多. 拖拽上传应用主要使用了以下 HTML5技术: Drag&Drop : HTML5基于拖拽的事件机制.File API : 可以很方便的让 Web 应用访问文件对象,File API 包括FileList.Bl

HTML5实战与剖析之原生拖拽(四可拖动dragable属性和其他成员)

可拖动dragable属性 之前我们已经为大家介绍过几篇有关HTML5中原生拖拽的相关知识了.今天为大家介绍HTML5拖拽中的其他一些小东东,闲话不多说赶快一起看看吧. 在默认情况下,链接.文本和图像是可以拖动的,不用再写代码即可拖动.如果想让其他元素标签也可以拖动,那么只有HTML5能实现了.HTML5为所有HTML元素规定了dragable属性,表示元素是否可以拖动.链接和图像的标签中自动将dragable属性自动被设置成true,其他元素的dragable属性的默认值是false. 支持d

HTML5拖拽上传图片预览

参考博文1:http://blog.csdn.net/testcs_dn/article/details/8695532 参考博文2:http://justcoding.iteye.com/blog/2105760 1.文件API:(File API) file类型的的表单控件选择的每一个文件都是一个file对象,而FileList对象则是这些file对象的集合列表,代表所选择的所有文件.file对象继承于Blob对象,该对象表示二进制原始数据,提供slice方法,可以访问到字节内部的原始数据块