html5拖拽(非IE方式)
2013-12-30 20:41
127 查看
Html5的拖放功能是在原先Internet
Exploer5中实现的功能基础上重新制定的标准,但是新的HTML5的拖放功能与原IE中实现的方式有所差别,不具有完全的互换性,这里首先制作可在Firefox、Safari、Chrom中运行的实例,然后再制作可以在IE中运行的实例。
<!DOCTYPE
html>
<html>
<head>
<meta
charset="utf-8">
<title>html5文件拖放(非IE形式)Firefox,Safari,Chrom</title>
<style>
#scrarea{
margin: 0 auto;
border: 1px solid
gray;
width: 1020px;
height: 200px;
}
.item{
border: 1px solid
green;
width: 150px;
height: 150px;
margin-top:
25px;
margin-left:
15px;
float: left;
}
#dragarea{
margin: 0 auto;
border: 1px solid
gray;
margin-top:
20px;
width: 1020px;
height: 200px;
}
#item6{
background:
gray;
}
[draggable=true]{
-webkit-user-drag:element;
}
</style>
<script>
(function(){
window.addEventListener("load",function(){
//首先取得我们要拖动的元素,取得我们scrarea下边要拖动的元素,并且class为item
var ele=document.querySelectorAll("#scrarea
[class=item]");
//给拖动元素添加dragstart事件的处理代码
for(var
i=0;i<ele.length;i++){
ele[i].addEventListener("dragstart",function(evt){
var
elm=evt.target;
//将我们但却拖拽元素的id放到我们的evt的Data
evt.dataTransfer.setData("Text",elm.id);
evt.stopPropagation();
},false);
}
//接收方区域追加各种事件处理
var
droparea=document.getElementByIdx_x("dragarea");
//拖动元素进入时
droparea.addEventListener("dragenter",function(evt){
evt.preventDefault();
},false);
//拖动中
dragarea.addEventListener("dragover",function(evt){
evt.preventDefault();
},false);
//拖动元素被放下的时候
dragarea.addEventListener("drop",function(evt){
var
elm=evt.target;
var
id=evt.dataTransfer.getData("Text");
var
target=document.getElementByIdx_x(id);
if(target){
//移动元素
droparea.a(target);
}
evt.preventDefault();
},true);
},false);
})();
</script>
</head>
<body>
<!--
1,div元素设置draggable="true"只有设置了此属性,div元素才能够被拖动
2,而img元素以及设置了href属性的a元素,都是默认可被拖动的,不需要再设置draggable属性了
3,支持draggable属性的浏览器目前为止只有Chrome(5以后的版本)、Safari 5.在Firefox
3.6以后的版本中,不管有没有设置属性
只要在dataTranfer对象的setData()方法设置了消息,就可被拖动
4,在旧的Safari4中不支持draggable属性,可以借助css的力量,让div元素变成为可拖动
[draggable-true]{
-webkit-user-drag:element;
}
-->
<h3 style="text-align:
center">html5拖拽(非IE方式)</h3>
<div
id="scrarea">
<img
src="instrument/erhu.jpg" class="item"
id="item1">
<img
src="instrument/dizi.jpg" class="item"
id="item2">
<img
src="instrument/jita.jpg" class="item"
id="item3">
<img
src="instrument/jiazigu.jpg" class="item"
id="item4">
<img
src="instrument/guzheng.jpg" class="item"
id="item5">
<div
draggable="true" class="item"
id="item6"></div>
</div>
<div
id="dragarea">
</div>
</body>
</html>
相关文章推荐
- HTML5之拖拽(兼容IE和非IE)
- IE8下html5标签脱离文档流的现象及其解决方式
- IE8下html5标签脱离文档流的现象及其解决方式
- html5之多文件拖拽上传预览
- 关于文件流的模拟上传——人人网首页拖拽上传详解(HTML5 Drag&Drop、FileReader API、formdata) | 彬Go
- IE下写xml文件的两种方式(fso/saveAs)
- HTML5 声明兼容IE的写法
- HTML5 声明兼容IE的写法(转载)
- 在 iOS Safari 中假装自动播放 HTML5 audio(音乐) 的正确方式
- js大全《二》 包含 js拖拽 打印 下载 操作收藏栏等IE工具 等常用js
- Drag/Drop---突袭HTML5之Javascript API扩展4 - 拖拽
- HTML5安全:CORS(跨域资源共享)简介。。。ie67不要想了。。。
- JavaScript本地存储实践(html5的localStorage和ie的userData)
- 使用HTML5的Canvas标签实现绘图板内拖拽元素
- IE中实现图片的拖拽
- HTML5实现动画三种方式
- 修改IE浏览网页时查看网页源文件的打开方式
- 让低版本IE支持Html5的新语义标签
- Javascript+HTML5 实现拖拽排序
- 集成验证时IE采用Kerberos 还是NTLM验证方式?(摘抄)