站長資訊網
        最全最豐富的資訊網站

        HTML5編程實戰之三-圖片文本(txt)拖拽預覽實現代碼


        本文主要用到的知識

          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中。

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久夜色精品国产噜噜亚洲AV| 国产亚洲精品自在久久| 无码人妻精品一区二区三区久久久| 欧美成人精品一级高清片| 精品一区二区三区自拍图片区 | 精品免费久久久久国产一区| 精品国产免费一区二区三区香蕉 | 丰满人妻熟妇乱又伦精品劲| 国产精品电影网| 国语自产少妇精品视频蜜桃| 亚洲精品乱码久久久久66| 巨大黑人极品VIDEOS精品 | 午夜精品成年片色多多| 动漫精品专区一区二区三区不卡| 亚洲国产精品福利片在线观看| 久久久久99精品成人片| 国产精品免费久久久久影院| 亚洲永久永久永久永久永久精品| 国产91久久精品一区二区| 久久精品无码专区免费东京热| 亚洲精品乱码久久久久久| 亚洲无码日韩精品第一页| 午夜精品久久影院蜜桃| 青青草97国产精品免费观看| 久久久久人妻精品一区三寸蜜桃| 国产精品污WWW一区二区三区| 国产精品99久久不卡| 国产精品无码永久免费888| 国产成人精品a视频一区| 国产叼嘿久久精品久久| 国产成人综合久久精品尤物| 国产一区二区精品久久岳| 国产欧美日韩精品专区| 久草热8精品视频在线观看| 久久精品成人| 天天视频国产精品| 亚洲国产精品无码久久一区二区| 亚洲av午夜福利精品一区人妖| 亚洲第一极品精品无码久久| 久久久无码精品亚洲日韩蜜臀浪潮| 精品久久人妻av中文字幕|