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

        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號
        主站蜘蛛池模板: 一区二区国产精品| 欧美精品亚洲精品日韩传电影| 亚洲欧洲自拍拍偷精品 美利坚| 极品精品国产超清自在线观看| 亚洲国产另类久久久精品小说 | 精品一区二区三区在线成人 | 亚欧洲精品在线视频免费观看| 99久久综合国产精品二区| 国产精品福利在线播放| 三上悠亚久久精品| 亚洲精品综合久久| 欧美日韩精品久久久久| 国产一区二区三区欧美精品| 杨幂国产精品福利在线观看| 国产亚洲精品xxx| 55夜色66夜色国产精品视频| 久久99久久99精品免视看动漫| 无码精品黑人一区二区三区| 亚洲精品专区在线观看| 伊人 久久 精品| 最新精品露脸国产在线| 精品欧美激情在线看| 精品国产香蕉伊思人在线在线亚洲一区二区 | 亚洲精品欧美日韩| 日本一区精品久久久久影院| 国产亚洲精品一品区99热| 国产91精品在线| 国产日韩精品在线| 久久亚洲欧美日本精品| 欧美精品香蕉在线观看网| 欧美精品亚洲精品日韩专区va| 久久这里只有精品首页| 99精品久久久久久久婷婷| 国产精品成| 精品久久人人做人人爽综合 | 亚洲精品456播放| 亚洲国产精品嫩草影院久久| 亚洲精品成a人在线观看| 亚洲性日韩精品国产一区二区| 亚洲AV无码久久精品狠狠爱浪潮| 久久丫精品国产亚洲av|