好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > HTML5拖拽文件上傳的示例代碼

HTML5拖拽文件上傳的示例代碼

熱門(mén)標(biāo)簽:智能語(yǔ)音電銷(xiāo)機(jī)器人客戶(hù)端 江西ai電銷(xiāo)機(jī)器人如何 中國(guó)地圖標(biāo)注城市的 地圖標(biāo)注員工作內(nèi)容 高德地圖標(biāo)注廁所 通遼地圖標(biāo)注app 西安金倫外呼系統(tǒng) 威海語(yǔ)音外呼系統(tǒng)平臺(tái) 地圖標(biāo)注沿海城市房?jī)r(jià)

上傳文件

HTML5新增了文件API,提供客戶(hù)端本地操作文件的可能.

我們可以通過(guò)file表單或拖放操作選擇文件,還可以通過(guò)JavaScript讀取文件的名稱(chēng)、大小、類(lèi)型、和修改時(shí)間.

file類(lèi)型的input表單新增了files屬性,保存我們上傳文件的信息,如果要實(shí)現(xiàn)多文件上傳,可以設(shè)置input的multiple屬性.

可以使用accept屬性規(guī)定文件上傳的MIME類(lèi)型 例如’image/jpeg’

<form action="#">
        <div class="form-group">
            <label for="input_1">請(qǐng)選擇文件</label>
            <input id="input_1" class="form-control" name="input_1" type="file">
        </div>
        <div class="form-group">
            <button id="btn_1" class="btn btn-default" type="button">讀取文件信息</button>
        </div>
</form>
<pre id="result"></pre>
</div>
<script>
var btn = document.querySelector('#btn_1');
var input = document.querySelector('#input_1');
btn.addEventListener('click', function() {
    // 獲取文件域中選擇的文件
    // var file = input.files[0];
    var file = input.files.item(0);
    if (file) {
        result.innerHTML =
            '文件名:' + file.name + '\n文件最近修改時(shí)間:' + file.lastModifiedDate+ '\n文件類(lèi)型:' + file.type + '\n文件大小:' + file.size + '字節(jié)'
    } else {
        result.innerHTML = '沒(méi)有選擇任何文件';
    }
});
</script>

頁(yè)面拖拽操作

對(duì)于被拖拽的元素,HTML5增加了三個(gè)事件用于監(jiān)聽(tīng)拖拽的過(guò)程

  • dragstart 拖拽開(kāi)始
  • drag 正在拖拽
  • dragend 拖拽結(jié)束
<body>
    <div id="one" style="width: 300px;height: 300px;border: 1px solid red"></div>
    <div id="two" style="width: 100px;height: 100px;border: 1px solid blue" draggable="true"></div>
</body>
<script type="text/javascript">
    two.ondragstart = function(e){
        // e.preventDefault();
        console.log(e);
        e.dataTransfer.setData("Text",e.target.id);
        console.log(e.dataTransfer.getData("Text",e.target.id));
        one.innerHTML = '開(kāi)始'
    }
    two.ondrag = function(e){
        one.innerHTML += '拖動(dòng)中'
    }
    two.ondragend = function(e){
        one.innerHTML = '結(jié)束'
    }
</script>

想要拖拽元素,必須設(shè)置draggable屬性

頁(yè)面默認(rèn)的動(dòng)作是拖拽后回到原位

在拖動(dòng)階段,我們可以存儲(chǔ)被拖動(dòng)元素的屬性或者狀態(tài)到事件對(duì)象的dataTransfer中,如果出現(xiàn)跳轉(zhuǎn),則是瀏覽器默認(rèn)的事件被觸發(fā),我們需要使用e.preventDefault()來(lái)阻止默認(rèn)事件。

投放區(qū)的事件

對(duì)于被拖的元素而言,拖向何處則為投放區(qū),投放區(qū)的事件如下:

  • dragenter 被拖放元素進(jìn)入
  • dragover 被拖放元素移動(dòng)
  • dragleave 被拖放元素離開(kāi)
<body>
    <div id="one" style="width: 300px;height: 300px;border: 1px solid red"></div>
    <div id="two" style="width: 100px;height: 100px;border: 1px solid blue" draggable="true"></div>
</body>
<script type="text/javascript">
    one.ondragenter = function(e){
        // e.preventDefault();
        console.log(e);
        one.innerHTML = '開(kāi)始'
    }
    one.ondragover = function(e){
        one.innerHTML += '拖動(dòng)中'
    }
    one.ondragleave = function(e){
        one.innerHTML = '結(jié)束'
    }
</script>

而drop則是監(jiān)聽(tīng)被拖拽物拖拽到投放區(qū)并松開(kāi)鼠標(biāo)的事件,他可以接收到dataTransfer中的數(shù)據(jù),所以我們的頁(yè)面內(nèi)拖拽可以寫(xiě)成如下效果:

<style type="text/css">
    *{
        box-sizing: border-box;
    }
</style>
<body>
    <div id="one" style="width: 300px;height: 300px;border: 1px solid red"></div>
    <div id="two" style="width: 100px;height: 100px;border: 1px solid blue;display: flex;">
        <div style="width: 50px;height: 100px;border:1px solid black;">第一個(gè)</div>
        <div style="width: 50px;height: 100px;border:1px solid pink;">第二個(gè)</div>
    </div>
</body>
<script type="text/javascript">
one.ondragover = function(e) {
    e.preventDefault();
}
two.onmousedown = function(e){
    e.target.draggable = true;
    e.target.ondragstart = function(ev) {
        ev.dataTransfer.setData("Text", ev.target.innerHTML);
    }
    e.target.ondragend = function(){
        two.removeChild(this)
    }
}
one.ondrop = function(e) {
    var div = document.createElement('div')
    div.style = "width: 50px;height: 100px;border:1px solid black;"
    div.innerHTML = e.dataTransfer.getData("Text")
    this.appendChild(div)
}
</script>
  • 對(duì)于谷歌瀏覽器,e.dataTransfer.setData(key,value)會(huì)導(dǎo)致拖拽到投放區(qū)域外的時(shí)候?yàn)g覽器默認(rèn)搜索設(shè)置的值。如果需要,我們可以屏蔽它
  • 對(duì)于火狐瀏覽器,沒(méi)有e.dataTransfer.setData(key,value)還不行。我們可以直接設(shè)置鍵值對(duì)為null,"";
  • 最新版本的谷歌和火狐瀏覽器沒(méi)有發(fā)現(xiàn)問(wèn)題
  • drop事件并不能直接觸發(fā),因?yàn)槟J(rèn)的松開(kāi)鼠標(biāo)我們的拖拽物會(huì)返回原來(lái)的位置,并不會(huì)掉落,所以我們應(yīng)該阻止投放區(qū)域的默認(rèn)事件.

拖拽文件上傳

經(jīng)過(guò)觀察,事件對(duì)象中的dataTransfer也存在files屬性,我們可以用熟悉的方法上傳拖拽進(jìn)來(lái)的文件:

<body>
    <div id="one" style="width: 300px;height: 300px;border: 1px solid red"></div>
</body>
<script type="text/javascript">
one.ondragover = function(e) {
    e.preventDefault();
}
one.ondrop = function(e) {
    e.preventDefault()
    console.log(e.dataTransfer.files[0]);
}
</script>

然后做Ajax文件上傳即可

one.ondrop = function(e) {
    e.preventDefault()
    var file = e.dataTransfer.files[0];
    var formData = new FormData();
    formData.append("aa", file);
    var xml = new XMLHttpRequest();
    xml.open("post", url, false);
    xml.send(formData);
}

到此這篇關(guān)于HTML5拖拽文件上傳的示例代碼的文章就介紹到這了,更多相關(guān)HTML5拖拽上傳內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

標(biāo)簽:崇左 阜陽(yáng) 青海 晉中 營(yíng)口 北海 眉山 河池

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HTML5拖拽文件上傳的示例代碼》,本文關(guān)鍵詞  HTML5,拖拽,文件,上傳,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《HTML5拖拽文件上傳的示例代碼》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于HTML5拖拽文件上傳的示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 亚洲综合区| japanesehotmilfxxxx| 成人国产一区二区三区| 印度videos又粗又大| 色吊丝永久性网址在线观看| 周妍希大尺度一区二区xXx| 老师你夹得好紧好爽动态图| 中日韩AV片免费观看视频| 97AV人妻无码视频二区| 亚洲男人电影天堂| 日本娇小hd| 久草手机视频| 精品人妻一区二区三区在线浪潮| 人与禽牲 视频 视频| 国产蜜臀久久AV一区二区| 福利一区二区三区视频在线观看| 日韩男男gaygaysⅹxx可播放| 久久久精品一区二区三潘金莲 | 扒开她粉嫩的小缝尿进去| 久久人妻无码AⅤ毛片A片APP| 免费人妻AV无码专区五月| 欧美日本一道高清免费3区| 室友h三攻一受强迫| 《武则天荒婬史》在线播放古装| 成品视频crm| 香蕉一区二区三区| 国产精品???A片在线观看原神 | 《武则天荒婬史》在线播放古装 | 日韩欧美一区二区三区免费观看| 凹凸国产AV熟女白浆精品视| 我的奶好大想被男人吃奶| 聊斋艳谭高清| 快穿肉文| 好想被男人吃出水水| 看美女洗澡全身光子视频| 中字伦理一区二区三E区 | 黄色美女黄色| 国产欧美日韩精品a在线观看| 套路调教 — 视频 | VK| 99国产超薄肉色丝袜批发价格| 伸进衣服捏奶gif揉动态图gif|