HTML5拖拉上传文件的简单实例


Posted in HTML / CSS onJanuary 11, 2017

在HTML5的pc上面实现了相当多的功能,工作中也用到了拖拉上传,特地记录下该功能

在拖动目标上触发事件 (源元素):

ondragstart - 用户开始拖动元素时触发

ondrag - 元素正在拖动时触发

ondragend - 用户完成元素拖动后触发

释放目标时触发的事件:

ondragenter - 当被鼠标拖动的对象进入其容器范围内时触发此事件

ondragover - 当某被拖动的对象在另一对象容器范围内拖动时触发此事件

ondragleave - 当被鼠标拖动的对象离开其容器范围内时触发此事件

ondrop - 在一个拖动过程中,释放鼠标键时触发此事件

上代码

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>拖拽</title>
    <style>
        .box{width:800px;height:600px;float:left;}
        #box1{background-color:#ccc;}
        #box2{background-color:#000;}
    </style>
</head>
<body>
    <div id="box1" class="box"></div>
    <div id="box2" class="box"></div>
    <img id="img1" src="1.jpg">
    <div id="msg"></div>
</body>
<script>
var box1Div,box2Div,msgDiv,img1; 
window.onload = function(){
    box1Div = document.getElementById('box1');
    box2Div = document.getElementById('box2');
    msgDiv = document.getElementById('msg');
    img1 = document.getElementById('img1');
    box1Div.ondragover = function(e){e.preventDefault();}
    box2Div.ondragover = function(e){e.preventDefault();}

    img1.ondragstart = function(e){e.dataTransfer.setData('imgId','img1');}
    box1Div.ondrop = dropImghandler;
    box2Div.ondrop = dropImghandler;
}
function dropImghandler(e){
    showObj(e);//获取拖放所有信息
    showObj(e.dataTransfer);//获取文件
    e.preventDefault();
    var img = document.getElementById(e.dataTransfer.getData('imgId'));
    e.target.appendChild(img);
}
function showObj(obj){
    var s = '';
    for(var k in obj){s += k+":"+obj[k]+"<br/>";}
    msgDiv.innerHTML = s;
}
</script>
</html>

该功能是可以将图片拖拉到左右两个div中的方法,我觉得没啥用,可以当作哈啤

下面是拖拉上传代码,后端PHP获取到$_FILES之后就可以搞起来了

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>拖放上传</title>
    <style>
        #imgContainer{background:#ccc;width:500px;height:500px;}
    </style>
</head>
<body>
    <div id="imgContainer"></div>
    <div id="msg"></div>
</body>
<script>
var imgContainer,msgDiv;
window.onload = function(e){
    imgContainer = document.getElementById('imgContainer');
    msgDiv = document.getElementById('msg');
    imgContainer.ondragover = function(e){
        e.preventDefault();
    }
    imgContainer.ondrop = function(e){
        e.preventDefault();
        var f = e.dataTransfer.files[0];   
        //这时已经获取到文件了,具体想要用第几个文件自己处理,发post请求后端处理就行了!

        //下面是图片获取到之后显示在imgContainer中的流程
        // var fileReader = new FileReader();
        // fileReader.onload=function(){
        //  imgContainer.innerHTML = "<img src=\""+fileReader.result+"\">"
        // }
        // fileReader.readAsDataURL(f);
        // showObj(e);   //显示上传信息
        // showObj(e.dataTransfer.files);
    }
}
function showObj(obj){
    var s = '';
    for(var k in obj){s += k+":"+obj[k]+"<br/>";}
    msgDiv.innerHTML = s;
}
</script>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
纯CSS3实现滚动的齿轮动画效果
Jun 05 HTML / CSS
使用CSS3来实现滚动视差效果的教程
Aug 24 HTML / CSS
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
Jan 17 HTML / CSS
纯CSS3实现圆圈动态发光特效动画的示例代码
Mar 08 HTML / CSS
HTML5 Canvas图像模糊完美解决办法
Feb 06 HTML / CSS
HTML5中的新元素介绍
Oct 17 HTML / CSS
input元素的url类型和email类型简介
Jul 11 HTML / CSS
HTML5添加禁止缩放功能
Nov 03 HTML / CSS
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
Jul 18 HTML / CSS
浅析图片上传及canvas压缩的流程
Jun 10 HTML / CSS
AmazeUI 网格的实现示例
Aug 13 HTML / CSS
浅谈为什么我的 z-index 又不生效了
Jul 15 HTML / CSS
如何用H5实现一个触屏版的轮播器的实例
Jan 09 #HTML / CSS
HTML5+CSS3模仿优酷视频截图功能示例
Jan 05 #HTML / CSS
HTML5实现文件断点续传的方法
Jan 04 #HTML / CSS
HTML5+css3:3D旋转木马效果相册
Jan 03 #HTML / CSS
HTML5+CSS3:3D展示商品信息示例
Jan 03 #HTML / CSS
HTML5+WebSocket实现多文件同时上传的实例
Dec 29 #HTML / CSS
详解前端HTML5几种存储方式的总结
Dec 27 #HTML / CSS
You might like
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
JavaScript 学习点滴记录
2009/04/24 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
2010/11/16 Javascript
js处理表格对table进行修饰
2014/05/26 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
简单实现jQuery级联菜单
2017/01/09 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
基于Require.js使用方法(总结)
2017/10/26 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
python中循环语句while用法实例
2015/05/16 Python
Python简单实现安全开关文件的两种方式
2016/09/19 Python
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
python调用摄像头显示图像的实例
2018/08/03 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
Kiwi.com中国:找到特价机票并发现新目的地
2019/10/27 全球购物
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
日语专业推荐信
2013/11/12 职场文书
商务英语应届生自我鉴定
2013/12/08 职场文书
小学新学期寄语
2014/04/02 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
Python3接口性能测试实例代码
2021/06/20 Python
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技