拖放(drag和drop)是html5标准组成,下面我们从五个方面对其进行叙述,分别是如何成为拖动物体,如何成为拖动目标,拖动物体上拥有的事件,拖动目标上拥有的事件以及拖放物体间如何传递信息。

拖动物体上拥有的事件
拖动目标上拥有的事件
如何成为拖动物体
在html中img元素默认可以进行拖拽,其它元素需要设置draggable=true,即可对其进行拖拽。
<div draggable="true"></div>
如何成为拖动目标
html中,元素默认不能成为放置目标,只有我们禁止了drapenter和drapover事件的默认行为时,可以称为拖放目标。
droptarget.addEventListener('dragenter', function(event) {
event.preventDefault();
});
droptarget.addEventListener('dragover', function(event) {
event.preventDefault();
});
拖放物体间如何传递信息
事件中具有一个dataTransfer对象,它拥有的两个常用方法setData()和getData(),分别用于在存放拖拽信息以及获取拖拽信息。其中,setData()只能在拖拽事件刚开始时设置,即dragstart事件时设置,getData()则一般在放置获取,即drop事件触发时获取。
// drapobj 拖拽元素
// droptarget 放置目标
dragobj.addEventListener('dragstart', function(event) {
event.dataTransfer.setData('id', dragobj.id);
});
droptarget.addEventListener('drop', function(event) {
var id = event.dataTransfer.getData('id');
var obj = document.getElementById(id);
event.preventDefault();
this.appendChild(obj);
});
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>HTML5 拖拽</title>
</head>
<body>
<div draggable="true"></div>
<div style="height: 150px" id="dragobj" draggable="true">
<img src="c_06.jpg" alt="">
</div>
<div id="droptarget" style="width: 150px; height: 150px;background-color: #eee;"></div>
</body>
<script>
var droptarget = document.getElementById('droptarget');
var dragobj = document.getElementById('dragobj');
// drapobj 拖拽元素
// droptarget 放置目标
dragobj.addEventListener('dragstart', function(event) {
event.dataTransfer.setData('id', dragobj.id);
});
droptarget.addEventListener('dragenter', function(event) {
event.preventDefault();
});
droptarget.addEventListener('dragover', function(event) {
event.preventDefault();
});
droptarget.addEventListener('drop', function(event) {
var id = event.dataTransfer.getData('id');
var obj = document.getElementById(id);
event.preventDefault();
this.appendChild(obj);
});
</script>
</html>
存在问题
火狐浏览器中拖拽图片默认打开新窗口,根据javascript高级程序设计中在drop事件中禁止默认事件,未解决问题。
解决方法:将图片作为div的背景图片,将div作为拖拽物体,则不存在此问题。
最终代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>HTML5 拖拽</title>
<style>
div {
width: 120px;
height: 136px;
}
#dragobj {
background: url('c_06.jpg') no-repeat;
}
#droptarget {
background-color: #eee;
}
</style>
</head>
<body>
<div id="dragobj" draggable="true">
</div>
<div id="droptarget"></div>
</body>
<script>
var droptarget = document.getElementById('droptarget');
var dragobj = document.getElementById('dragobj');
// drapobj 拖拽元素
// droptarget 放置目标
dragobj.addEventListener('dragstart', function(event) {
event.dataTransfer.setData('id', dragobj.id);
});
droptarget.addEventListener('dragenter', function(event) {
event.preventDefault();
});
droptarget.addEventListener('dragover', function(event) {
event.preventDefault();
});
droptarget.addEventListener('drop', function(event) {
var id = event.dataTransfer.getData('id');
var obj = document.getElementById(id);
event.preventDefault();
this.appendChild(obj);
});
</script>
</html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# html5
# 拖动
# js实现鼠标拖动功能
# js实现悬浮窗效果(支持拖动)
# JavaScript拖动层Div代码
# js实现兼容PC端和移动端滑块拖动选择数字效果
# 基于JavaScript实现拖动滑块效果
# js拖动滑块和点击水波纹效果实例代码
# 拖拽
# 拖放
# 对其
# 不存在
# 事件中
# 火狐
# 解决问题
# 刚开始
# 类似于
# 解决方法
# 结束时
# 程序设计
# 大家多多
# 存在问题
# 中时
# 中移动
# 五个方面
# 器中
# 只能在
相关文章:
建站主机功能解析:服务器选择与快速搭建指南
如何快速生成专业多端适配建站电话?
网站制作需要会哪些技术,建立一个网站要花费多少?
安徽网站建设与外贸建站服务专业定制方案
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
宝塔新建站点为何无法访问?如何排查?
Python lxml的etree和ElementTree有什么区别
如何在万网开始建站?分步指南解析
如何用搬瓦工VPS快速搭建个人网站?
制作销售网站教学视频,销售网站有哪些?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何配置FTP站点权限与安全设置?
黑客如何通过漏洞一步步攻陷网站服务器?
如何在Golang中指定模块版本_使用go.mod控制版本号
成都响应式网站开发,dw怎么把手机适应页面变成网页?
学校建站服务器如何选型才能满足性能需求?
网站代码制作软件有哪些,如何生成自己网站的代码?
建站之星后台密码遗忘如何找回?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何通过虚拟主机快速搭建个人网站?
制作公司内部网站有哪些,内网如何建网站?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何通过免费商城建站系统源码自定义网站主题与功能?
如何制作一个表白网站视频,关于勇敢表白的小标题?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
建站之星logo尺寸如何设置最合适?
建站之星后台管理系统如何操作?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
北京的网站制作公司有哪些,哪个视频网站最好?
建站VPS选购需注意哪些关键参数?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
建站之星2.7模板快速切换与批量管理功能操作指南
个人网站制作流程图片大全,个人网站如何注销?
广州美橙建站如何快速搭建多端合一网站?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
建站之星如何实现PC+手机+微信网站五合一建站?
如何通过智能用户系统一键生成高效建站方案?
制作表格网站有哪些,线上表格怎么弄?
如何快速搭建响应式可视化网站?
招商网站制作流程,网站招商广告语?
建站主机默认首页配置指南:核心功能与访问路径优化
行程制作网站有哪些,第三方机票电子行程单怎么开?
高端企业智能建站程序:SEO优化与响应式模板定制开发
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
如何挑选高效建站主机与优质域名?
*请认真填写需求信息,我们会在24小时内与您取得联系。