開(kāi)發(fā)「bufpay.com 個(gè)人即時(shí)到賬收款平臺(tái)」后臺(tái)需要支持開(kāi)發(fā)者的微信和支付寶二維碼上傳。
<p>
<button class="btn btn-primary" onClick="javascript:document.getElementById('fileupload').click();">批量上傳微信/支付寶支付二維碼</button>
<input style="display:none;" id="fileupload" type="file" name="file" accept="image/*" multiple>
</p>
原來(lái)的方式是點(diǎn)擊 button 觸發(fā)一個(gè) 隱藏的 file 的 onchange 事件,從而彈出文件選擇框,選擇文件。
但是有用戶(hù)反饋直接拖動(dòng)收款二維碼進(jìn)去會(huì)方便一些。于是,修改原代碼,在 js 文件中添加
<p id="drop_area" onClick="javascript:document.getElementById('fileupload').click();">
<button class="btn btn-primary">批量上傳微信/支付寶支付二維碼</button>
<input style="display:none;" id="fileupload" type="file" name="file" accept="image/*" multiple>
</p>
js 代碼
var dp = document.getElementById('drop_area');
dp.addEventListener('dragover', function(e) {
e.stopPropagation();
e.preventDefault();
e.dataTransfer.dropEffect = 'copy';
});
dp.addEventListener("drop", function(e) {
e.stopPropagation();
e.preventDefault();
var files = e.dataTransfer.files;
// do something upload
});
把 button 的上一級(jí) p 作為一個(gè) drop area 添加監(jiān)聽(tīng) dragover 和 drop 事件,在 drop 事件里面對(duì)拖動(dòng)的文件進(jìn)行操作即可。
插播廣告