<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.container {
width: 200px;
height: 200px;
background: #ccc;
margin: 60px auto;
border: 1px solid silver;
text-align: center;
line-height: 200px;
}
</style>
<script>
window.onload = function () {
//ondragenter 拖拽文件进入时触发的事件
//ondragleave 拖拽文件离开时触发的事件
//ondragover 拖拽鼠标悬停的时候触发的事件
//ondrop 释放鼠标的时候触发的事件,(前提是ondragover阻止默认事件才能被被触发,本身也要阻止默认事件)
//为了更好的兼容,建议都使用addEventListener来进行绑定
let odiv = document.getElementById('container'); odiv.addEventListener('dragenter', function () {
this.innerHTML = '请释放鼠标'
}, false); odiv.addEventListener('dragleave', function () {
this.innerHTML = '请将文件拖拽到此处';
});
odiv.addEventListener('dragover', function (ev) {
console.log('鼠标正在上面');
ev.preventDefault();
});
odiv.addEventListener('drop', function (ev) {
//文件信息(数组形式)
console.log(ev.dataTransfer.files);
console.log('你已经释放鼠标了');
//注意:阻止默认事件应该放置在FileReader上面
ev.preventDefault(); //前端读取文件(注意:以下方法只兼容到IE10)
let file = ev.dataTransfer.files[0];
let reader = new FileReader();
reader.onload = function () {
//读取完之后,文件会存放在this.result里面,那么就可以进行相关操作
console.log(this.result);
alert(this.result);
};
reader.onerror = function () { };
reader.readAsText(file);
//reader.readAsText(file) 以文本的形式读取(文本文件)
//reader.readAsDataUrl(file) base64 以图片的形式读取(图片文件)
//reader.readAsArrayBuffer(file) 原始的二进制数据(编辑,不常用)
//reader.readAsBinaryBuffer(file) 二进制的文件形式数据(文件上传) }, false) }
</script>
</head>
<body>
<div class="container" id="container">
请将文件拖拽到此处
</div>
</body>
</html>

html5 drag 文件拖拽浅淡的更多相关文章

  1. HTML5 drag & drop 拖拽与拖放简介

    DataTransfer 对象:退拽对象用来传递的媒介,使用一般为Event.dataTransfer. draggable 属性:就是标签元素要设置draggable=true,否则不会有效果,例如 ...

  2. HTML5 drag & drop 拖拽与拖放

    关键词: 1. draggable:规定元素是否可拖动的,draggable=true可拖动 2. dataTransfer:拖拽对象用来传递的媒介,使用方式:event.dataTransfer 3 ...

  3. atitit.D&D drag&drop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结

    atitit.D&D drag&drop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结 1. DND的操作流程 1 2. Html5 注 ...

  4. html5 文件拖拽上传

    本文首先发表在  码蜂笔记 : http://coderbee.net/index.php/web/20130703/266 html5 文件拖拽上传是个老话题了,网上有很多例子,我一开始的代码也是网 ...

  5. HTML5多图片拖拽上传带进度条

    前言 昨天利用css2的clip属性实现了网页进度条觉得还不错,但是很多情况下,我们在那些时候用进度条呢,一般网页加载的时候如果有需要可以用,那么问题就来了,怎么才算整个加载完毕呢,是页面主要模块加载 ...

  6. html5 Sortable.js 拖拽排序源码分析

    最近公司项目经常用到一个拖拽 Sortable.js插件,所以有空的时候看了 Sortable.js 源码,总共1300多行这样,写的挺完美的.   本帖属于原创,转载请出名出处. 官网http:// ...

  7. Atitit。D&D drag&drop拖拽功能c#.net java swing的对比与实现总结

    Atitit.D&D drag&drop拖拽功能c#.net java swing的对比与实现总结 1. 实现一个D&D操作一般包括三个步骤: 1 2. .net黑头的拖曳机制 ...

  8. HTML5——将图片拖拽上传

    如下图所示: 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  9. VC实现文件拖拽OnDropFiles

    文章转自http://blog.csdn.net/zamaolangzi/article/details/5645284 使用过QQ的人都知道,只要把文件拖拽到消息框中就可以传送文件了.那么这种功能是 ...

随机推荐

  1. Activemq -- Spring 整合

    转自: https://www.cnblogs.com/jaycekon/p/ActiveMq.html

  2. 329 experience

    截止到现在,给我最大的冲击就是HTML没有像JAVA那样严格 可以随意搭配,换句话说 HTML要的就是效果 没有一个固定的方法 即便是代码有错误 也可以实现效果 今天的东西挺好吃 能吃的消 哈哈 开森 ...

  3. Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields(理解)

    0 - 人体姿态识别存在的挑战 图像中的个体数量.尺寸大小.位置均未知 个体间接触.遮挡等影响检测 实时性要求较高,传统的自顶向下方法运行时间随着个体数越多而越长 1 - 整体思路 整个模型架构是自底 ...

  4. Django学习手册 - ORM数据类型

    DOM 字段/参数 配置格式: Module.字段(参数) 常用的字段归纳: 数字 models.AutoField() 自增列(int),必须设置为主键 models.IntegerField() ...

  5. ASP.NET - 学习总目录

    ASP.NET - 处理页面 ASP.NET - ADO.NET框架 ASP.NET - 创建功能菜单 ASP.NET MVC - 入门 ASP.NET MVC - 模型验证 ASP.NET MVC ...

  6. 微信小程序获取手机验证码

    一种比较常见的功能获取手机验证码 先看效果图: 其实这个功能实现起来很简单,主要就是调取第三方接口,拿到返回值验证的问题 直接上代码吧: wxml页面: <view class='changeI ...

  7. VMware网络问题

    配置好网络的虚拟机,隔一段时间后可能会发现网络不可用了,此时可以检查一下以下3个服务是否开启 一般情况下,启动以上三个服务后网络就通了. 如果以上服务都启动了还不行,那就重启一下网络: # servi ...

  8. codevs 1081 线段树练习2 (线段树)

    题目: 题目描述 Description 给你N个数,有两种操作 1:给区间[a,b]的所有数都增加X 2:询问第i个数是什么? 输入描述 Input Description 第一行一个正整数n,接下 ...

  9. Linux C 读取文件夹下所有文件(包括子文件夹)的文件名【转】

    转自:https://www.cnblogs.com/xudong-bupt/p/3504442.html 本文:http://www.cnblogs.com/xudong-bupt/p/350444 ...

  10. NUMA的取舍与优化设置【转】

    NUMA的取舍与优化设置 在os层numa关闭时,打开bios层的numa会影响性能,QPS会下降15-30%; 在bios层面numa关闭时,无论os层面的numa是否打开,都不会影响性能. 安装n ...