最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

HTML5编程实战之三-图片文本(txt)拖拽预览实现代码

来源:动视网 责编:小采 时间:2020-11-27 15:10:07
文档

HTML5编程实战之三-图片文本(txt)拖拽预览实现代码

HTML5编程实战之三-图片文本(txt)拖拽预览实现代码:本文主要用到的知识 http://www.gxlcms.com/wiki/1118.html target=_blank
推荐度:
导读HTML5编程实战之三-图片文本(txt)拖拽预览实现代码:本文主要用到的知识 http://www.gxlcms.com/wiki/1118.html target=_blank


本文主要用到的知识

  http://www.gxlcms.com/wiki/1118.html" target="_blank">HTML5中的File及FileReader接口

源码

<!DOCTYPE html><html><head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <title>HTML5文件拖拽预览Demo</title>
 <style type="text/css">
 h1{
 padding:0px;
 margin:0px;
 }
 p#show{
 border: 1px solid #ccc; 
 width: 400px; 
 height: 300px;
 display: -moz-box;
 display: -webkit-box;
 -moz-box-align: center;
 -webkit-box-align: center;
 -moz-box-pack: center;
 -webkit-box-pack: center;
 resize:both;
 overflow:auto;
 }
 p[id^=show]:hover{
 border: 1px solid #333; 
 }
 p#main{
 width:100%;
 }
 p#successLabel {
 color:Red;
 }
 p#content {
 display:none;
 }
 </style>
 <script type="text/javascript">
 function init() 
 { var dest = document.getElementById("show");
 dest.addEventListener("dragover", function(ev) 
 {
 ev.stopPropagation();
 ev.preventDefault();
 }, false);
 
 dest.addEventListener("dragend", function(ev) 
 {
 ev.stopPropagation();
 ev.preventDefault();
 }, false);
 
 dest.addEventListener("drop", function (ev) {
 ev.stopPropagation();
 ev.preventDefault(); 
 var file = ev.dataTransfer.files[0]; 
 var reader = new FileReader(); 
 if (file.type.substr(0, 5) == "image") {
 reader.onload = function (event) {
 dest.style.background = 'url(' + event.target.result + ') no-repeat center';
 dest.innerHTML = "";
 };
 reader.readAsDataURL(file);
 } else if (file.type.substr(0, 4) == "text") {
 
 reader.readAsText(file);
 reader.onload = function (f) {
 dest.innerHTML = "<pre>" + this.result + "</pre>";
 dest.style.background = "white";
 }
 } else {
 dest.innerHTML = "暂不支持此类文件的预览";
 dest.style.background = "white";
 }
 }, false);
 } 
 //设置页面属性,不执行默认处理(拒绝被拖放) 
 document.ondragover = function(e){e.preventDefault();};
 document.ondrop = function(e){e.preventDefault();}
 
 window.onload=init; 
 </script></head><body>
 <h1>HTML5文件拖拽预览Demo</h1>
 <p id="show">
 文件预览区,仅限图片和txt文件 
 </p></body></html>

主要代码解析

  样式部分就不说了,很简单

  dragover、dragend、drop是三个与拖拽相关的事件。

  dragover表示被拖放的元素正在本元素范围内移动

  dragend表示拖放操作结束

  drop表示有其他元素被拖放到了本元素中

  代码中先分别监听这几个事件,取消浏览器默认的行为,然后利用HTML5中的File及FileReader判断读取拖拽的文件。

  如果文件是图片,就用FileReader的readAsDataURL方法将图片读取为DataURL字符串存入内存,并显示在p中。

  如果文件是txt文本,就用FileReader的readAsText方法将文件读取为文本(默认为UTF-8格式),放到内存中,然后显示在p中。

文档

HTML5编程实战之三-图片文本(txt)拖拽预览实现代码

HTML5编程实战之三-图片文本(txt)拖拽预览实现代码:本文主要用到的知识 http://www.gxlcms.com/wiki/1118.html target=_blank
推荐度:
标签: 图片 文字 实现
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top