溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTML5怎么實現(xiàn)拖拽預覽

發(fā)布時間:2021-11-18 13:37:30 來源:億速云 閱讀:190 作者:iii 欄目:web開發(fā)

本篇內(nèi)容主要講解“HTML5怎么實現(xiàn)拖拽預覽”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“HTML5怎么實現(xiàn)拖拽預覽”吧!

源碼

<!DOCTYPE html> <html> <head>     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>     <title>HTML5文件拖拽預覽Demo</title>     <style type="text/css">         h2{              padding:0px;              margin:0px;          }          div#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;          }          div[id^=show]:hover{              border: 1px solid #333;           }          div#main{              width:100%;          }          div#successLabel          {              color:Red;          }          div#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);          }                    //設置頁面屬性,不執(zhí)行默認處理(拒絕被拖放)          document.ondragover = function(e){e.preventDefault();};          document.ondrop = function(e){e.preventDefault();}                    window.onload=init;      </script> </head> <body>     <h2>HTML5文件拖拽預覽Demo</h2>     <div id="show">     文件預覽區(qū),僅限圖片和txt文件      </div> </body> </html>

主要代碼解析

樣式部分就不說了,很簡單

dragover、dragend、drop是三個與拖拽相關(guān)的事件。

dragover表示被拖放的元素正在本元素范圍內(nèi)移動

dragend表示拖放操作結(jié)束

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

代碼中先分別監(jiān)聽這幾個事件,取消瀏覽器默認的行為,然后利用HTML5中的File及FileReader判斷讀取拖拽的文件。

如果文件是圖片,就用FileReader的readAsDataURL方法將圖片讀取為DataURL字符串存入內(nèi)存,并顯示在DIV中。

如果文件是txt文本,就用FileReader的readAsText方法將文件讀取為文本(默認為UTF-8格式),放到內(nèi)存中,然后顯示在DIV中。

到此,相信大家對“HTML5怎么實現(xiàn)拖拽預覽”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI