HTML5之拖拽
HTML5拖放
拖放(Drag和drop)是H5标准的组成部分
此处需具备js基础知识及其H5拖拽部分相关方法
在拖动目标上触发事件 (源元素):
ondragstart - 用户开始拖动元素时触发
ondrag - 元素正在拖动时触发
ondragend - 用户完成元素拖动后触发
释放目标时触发的事件:
ondragenter - 当被鼠标拖动的对象进入其容器范围内时触发此事件
ondragover - 当某被拖动的对象在另一对象容器范围内拖动时触发此事件
ondragleave - 当被鼠标拖动的对象离开其容器范围内时触发此事件
ondrop - 在一个拖动过程中,释放鼠标键时触发此事件
下面来看几个例子
第一:本地拖放
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<style type="text/css">
#boxContainer{
background-color: #BC8F8F;
width: 600px;
height: 400px;
}
</style>
<body>
<div id="boxContainer"></div>
<div id="msg"></div>
<script>
var imgContainer,msgDiv;
window.onload=function(){
imgContainer=document.getElementById("boxContainer");
msgDiv=document.getElementById("msg");
imgContainer.ondragover=function(e){
e.preventDefault();//阻止事件event默认行为
};
imgContainer.ondrop=function(e){//通过showObj函数显示信息知道本地图片拖拽与file信息有关
e.preventDefault();
var f=e.dataTransfer.files[0];//获取信息
var fileReader=new FileReader();//读取信息
fileReader.onload=function(e){//通过fileReader监听事件
showObj(e.target);
imgContainer.innerHTML="<img src=\""+fileReader.result+"\">"
};
fileReader.readAsDataURL(f);//读取地址
}
};
function showObj(obj){//这个函数只是为了表达在拖放成功后取显示去盛放拖拽造成的数据信息
var s="";//声明局部变量
for(var k in obj){//用forin循环遍历数据信息
s+=k+":"+obj[k]+"<br/>"
}
msgDiv.innerHTML=s;//显示信息在HTML
}
</script>
</body>
</html>
第二:H5拖放
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<style type="text/css">
.box{
width:400px;
height:300px;
}
#box1{
float: left;
background-color: orange;
}
#box2{
float: left;
background-color: rosybrown;
}
</style>
<body>
<div id="box1" class="box"></div>
<div id="box2" class="box"></div>
<img id="img1" src="data:images/demo.jpg" width="200" height="200"/>
<div id="msg"></div>
<script>
var box1Div,box2Div,msgDiv,img1;//声明全局变量
window.onload=function(){
box1Div=document.getElementById("box1");//获取放置拖拽元素的div
box2Div=document.getElementById("box2");
msgDiv=document.getElementById("msg");//获取显示拖拽信息的元素的div
img1=document.getElementById("img1"); box1Div.ondragenter=function(e){//给其添加ondragenter即当被鼠标拖动的对象进入其容器范围内时触发此事件,即给拖拽加监听事件 showObj(e);//e为event事件为事件参数 }
box1Div.ondragover=function(e){
e.preventDefault();//阻止事件event默认行为
};
box2Div.ondragover=function(e){//ondragover - 当某被拖动的对象在另一对象容器范围内拖动时触发此事件
e.preventDefault();//阻止事件event默认行为,调用 preventDefault() 来避免浏览器对数据的默认处理(drop 事件的默认行为是以链接形式打开)
};
img1.ondragstart=function(e){//ondragstart - 用户开始拖动元素时触发
e.dataTransfer.setData("imgId","img1");//用setData方法获取数据
};
box1Div.ondrop=dropImghand;
box2Div.ondrop=dropImghand;//ondrop - 在一个拖动过程中,释放鼠标键时触发此事件
};
function dropImghand(e){//box1Div.ondrop=后拿出来设置函数名,即封装成方法,再在上面引用
showObj(e.dataTransfer);
e.preventDefault();//阻止事件event默认行为
//创建节点,放置数据
var img=document.getElementById(e.dataTransfer.getData("imgId"));
e.target.appendChild(img);//添加到节点当中
}
function showObj(obj){//这个函数只是为了表达在拖放成功后取显示去盛放拖拽造成的数据信息
var s="";//声明局部变量
for(var k in obj){//用forin循环遍历数据信息
s+=k+":"+obj[k]+"<br/>"
}
msgDiv.innerHTML=s;//显示信息在HTML
} </script>
</body>
</html>
HTML5之拖拽的更多相关文章
- HTML5之拖拽(兼容IE和非IE)
前世:项目中需要拖动div,然后和某个div进行位置交换,这不是关键,关键是还要保存位置,然后在下次打开的时候按照保存的位置显示.还好本人功力深厚,一下子就想到了用localStorage来保存,事实 ...
- html5 文件拖拽上传
本文首先发表在 码蜂笔记 : http://coderbee.net/index.php/web/20130703/266 html5 文件拖拽上传是个老话题了,网上有很多例子,我一开始的代码也是网 ...
- 基于html5可拖拽图片循环滚动切换
分享一款基于html5可拖拽图片循环滚动切换.这是一款支持手机端拖拽切换的网站图片循环滚动特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div id="s ...
- [开源应用]利用HTTPHandler+resumableJs+HTML5实现拖拽上传[大]文件
前言: 大文件传输一直是技术上的一大难点.文件过大时,一些性提交所有的内容进内存是不现实的.大文件带来问题还有是否支持断点传输和多文件同时传输. 本文以resumableJs为例,介绍了如何在ASP. ...
- HTML5图片拖拽预览原理及实现
一.前言 这两天恰好有一位同事问我怎样做一个图片预览功能.作为现代人的我们首先想到的当然是HTML5啦,其实HTML5做图片预览已经是一个老生常谈的问题了.我在这里就简单说说其中相关的一些东西,当然会 ...
- HTML5文件拖拽
HTML5新增的File API, 可以获取名称.文件大小.类型等信息,需先对DOM中的Element进行拖拽事件绑定 相关API 首先获取节点,绑定拖动到该节点的事件,可以改变鼠标形状 var dr ...
- HTML5 实现拖拽
如图 可以从第一个方框拖拽花色到第二个方框中. 也可以再拖动回来. 具体代码实现 index.html <!DOCTYPE HTML> <html> <head> ...
- html5实现拖拽文件上传
以下是自学it网--中级班上课笔记 网址:www.zixue.it html文件 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict ...
- HTML5原生拖拽/拖放⎡Drag & Drop⎦详解
前言 拖放(drap && drop)在我们平时的工作中,经常遇到.它表示:抓取对象以后拖放到另一个位置.目前,它是HTML5标准的一部分.我从几个方面学习并实践这个功能. 拖放的流程 ...
- HTML5原生拖拽/拖放(drag & drop)详解
前言 拖放(drap && drop)在我们平时的工作中,经常遇到.它表示:抓取对象以后拖放到另一个位置.目前,它是HTML5标准的一部分.我从几个方面学习并实践这个功能. 拖放的流程 ...
随机推荐
- 使用ajax请求后返回数据显示undefinded解决办法
今天在使用七牛的sdk做断点续传时候,当文件过大,本地没有存储时候,想要通过ajax将本地信息存到服务器缓存,之后通过读取缓存的方式来完成文件过大断点续传无法使用问题. 但是在使用ajax请求的时候, ...
- 了解 Azure VM 的系统重启
有时 Azure 虚拟机 (VM) 可能重启,即使没有明显原因,也没有证据表明用户发起重启操作. 本文列出了可导致 VM 重启的操作和事件,并针对如何避免意外重启问题或减少该问题影响提供见解. 配置 ...
- GitHub和SVN的区别
今天了解一下svn和github的区别. 一.版本控制 版本控制是指对软件开发过程中各种程序代码.配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一.版本控制最主要的功能就是追踪文件的变 ...
- 【Leetcode】【Medium】Simplify Path
Given an absolute path for a file (Unix-style), simplify it. For example,path = "/home/", ...
- 计算机用CMD命令关机建立文件夹 梁华杰
1:进入CMD BJ 2:关机并取消 3:进入D盘 文件管理 创件文件并删除
- UML实践
UML图一览 1.分工泳道图 使工作内容更加清晰 2.类图 更加细化了一些函数,对于之后的接口文档细节问题进行了约束 3.用例图 实现了一个玩家的整体可操作的概况 4.活动图 1)注册活动图 用于登录 ...
- Java.util 包(Date 类、Calendar类、Random类)
java.util 包提供了一些实用的方法和数据结构. Date 类 Date 类表示日期和时间,里面封装了操作日期和时间的方法.Date 类经常用来获取系统当前时间. 构造方法: 构造方法 说明 D ...
- Java.lang 包 (包装类、String类、Math类、Class类、Object类)
Java 的核心 API(Application Programming Interface)是非常庞大的,这给开发者带来了很大的方便. java.lang 包是 Java 的核心类库,它包含了运行 ...
- 如何在windows下用IDA优雅调试ELF
在windows下如何用IDA优雅调试ELF brief: 构建一个IDA-linux_server-docker镜像,优雅地IDA远程调试 使用传统虚拟机来运行一个linux程序就得跑一个完整的li ...
- Debian防御DDOS(简易版本)
DDOS攻击主要还是靠硬防,不过,对于一些小的骚扰,可以采用DDoS deflate+iptables的方法减轻. ========================================== ...