说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

IE10支持HTML5标准拖放

HTML文档下载 WORD文档下载 PDF文档下载
微软的IE10对HTML5进行了的大量支持,包含2D和3D高效平滑转换,完全支持WebKit语法,还有Web Workers、Web Sockets、Web Fonts、Indexed DB、SVG 滤镜、Flexbox布局等等。本文给大家讲讲HTML5在IE10实现拖放功能。

如今,HTML5可谓如众星捧月一般,受到许多业内巨头的青睐。而且微软的IE10也加入了对HTML5的大量支持,包含2D和3D高效平滑转换,完全支持WebKit语法,还有Web Workers、Web Sockets、Web Fonts、Indexed DB、SVG滤镜、Flexbox布局等等。这里,给大家讲讲HTML5在IE10实现拖放功能,因为这个功能在桌面客户端软件中应用十分普遍。

首先,了解一下HTML5的基本组成元素:

  •  <header>:用于任何网站的头部。
  •  <nav>:常用的导航菜单
  •  <section>:定义文档中的节或区段。
  •  <article>:定义独立内容。
  •  <footer>:定义section或document的页脚。

HTML5标准对拖放做了规定,IE10支持dataTransfer对象和拖放图片、超链接、文本的事件,现在增加了draggable属性,支持把一个或多个文件从桌面拖放到网页上的功能。基本状态如下:

draggable = 'true';该元素可拖放。

draggable = 'false';该元素不可拖放。

draggable = 'auto';该元素遵循默认的浏览器行为(文本、超链接和图片可拖放,其他元素不能)。

实现图片的拖放效果

  1. <!DOCTYPE html>  
  2. <head>  
  3. <meta charset="gb2312">  
  4. <title>拖放</title>  
  5. <script type="text/javascript">  
  6. function init(){   
  7.   var source = document.getElementById("dragMe");   
  8.   var dest = document.getElementById("text");   
  9.   source.addEventListener("dragstart"function(ev) {   
  10.     var dt = ev.dataTransfer; //把拖放的数据存到dataTransfer对象中   
  11.     dt.effectAllowed = 'all';   
  12.     dt.setData("text/plain""Hello");//this.id = "Hello"  
  13.   },false);  
  14.   //拖放结束   
  15.   dest.addEventListener("dragend"function(ev) {   
  16.     ev.preventDefault();},false);   
  17.   dest.addEventListener("drop"function(ev) {   
  18.     var dt = ev.dataTransfer;   
  19.     var text = dt.getData("text/plain");   
  20.     dest.textContent += text;   
  21.     ev.preventDefault(); //不执行默认处理  
  22.     ev.stopPropagation(); //停止事件传播   
  23.    },false);  
  24. }  
  25. document.ondragover = function(e){  
  26.    e.preventDefault();  
  27. };  
  28. false;  
  29. //必须设定整个页面不执行默认处理,否则拖放处理也不能被实现  
  30. document.ondrop = function(e) {  
  31.    e.preventDefault();  
  32. };  
  33. false;  
  34. </script>  
  35. </head>  
  36. <body onload="init()">  
  37. <h1>拖放示例1</h1>  
  38. <!-- draggable属性设为true -->  
  39. <div id="dragMe" draggable="true" style="width: 200px; border: 1px solid gray;"> 拖放试试</div>  
  40. <div id="text" style="width: 200px; height: 200px; border: 1px solid gray;"></div>  
  41. </body> 

当用户拖动一个可拖放的元素时,IE10随着拖动的光标移动显示一个元素的虚影。draggable属性是不可继承的,因此元素的子元素不会自动变成可拖放的。

另外,dataTransfer对象的files属性支持用户把文件从桌面的文件夹中拖放到网页上。如邮件客户端,把附件拖放进邮件内容中,或者在图库页面中添加照片。这种从桌面端到Web端的无缝交互无疑是Web开发的一大亮点。

HTML5现有标准能够被各大浏览器无差别支持,就能看出大家对HTML5的喜爱程度,估计在3年内会达到相对普及的程度,如何在未来的市场上体现强大的竞争力,还需拭目以待。

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘