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 相关文章推荐
让IE支持CSS3的不完全兼容方案
Sep 19 HTML / CSS
详解css3 Transition属性(平滑过渡菜单栏案例)
Sep 05 HTML / CSS
使用CSS变量实现炫酷惊人的悬浮效果
Apr 26 HTML / CSS
使用phonegap检测网络状态的方法
Mar 30 HTML / CSS
Html5实现如何在两个div元素之间拖放图像
Mar 29 HTML / CSS
用HTML5中的Canvas结合公式绘制粒子运动的教程
May 08 HTML / CSS
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
Mar 02 HTML / CSS
HTML5轻松实现全屏视频背景的示例
Apr 23 HTML / CSS
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
Aug 28 HTML / CSS
canvas绘制圆角头像的实现方法
Jan 17 HTML / CSS
如何使用 resize 实现图片切换预览功能
Aug 23 HTML / CSS
详解CSS中postion和opacity及cursor的特性
Aug 14 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
通过对php一些服务器端特性的配置加强php的安全
2006/10/09 PHP
PHP中对用户身份认证实现两种方法
2011/06/04 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
加速IE的Javascript document输出的方法
2010/12/02 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
Angular+Node生成随机数的方法
2017/06/16 Javascript
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
Python是怎样处理json模块的
2020/07/16 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
教师党员承诺书
2014/03/25 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
公共场所卫生管理制度
2015/08/05 职场文书
60条职场经典语录,总有一条能触动你的心
2019/08/21 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS