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 透明色 RGBA使用介绍
Aug 06 HTML / CSS
推荐10个CSS3 制作的创意下拉菜单效果
Feb 11 HTML / CSS
CSS3简单实现照片墙
Dec 12 HTML / CSS
详解CSS3中使用gradient实现渐变效果的方法
Aug 18 HTML / CSS
详解CSS3选择器的使用方法汇总
Nov 24 HTML / CSS
使用CSS变量实现炫酷惊人的悬浮效果
Apr 26 HTML / CSS
html通过canvas转成base64的方法
Jul 18 HTML / CSS
html5实现图片转圈的动画效果——让页面动起来
Oct 16 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
Jan 08 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
Nov 19 HTML / CSS
HTML5 SEO优化的一些建议
Aug 27 HTML / CSS
CSS 实现角标效果的完整代码
Jun 28 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无限分类且支持输出树状图的详细介绍
2013/06/19 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
javascript之ESC(第二类混淆)
2007/05/06 Javascript
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
Nodejs为什么选择javascript为载体语言
2015/01/13 NodeJs
jQuery学习笔记之2个小技巧
2015/01/19 Javascript
盘点javascript 正则表达式中 中括号的【坑】
2016/03/16 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
python获取网页状态码示例
2014/03/30 Python
Python-基础-入门 简介
2014/08/09 Python
python装饰器decorator介绍
2014/11/21 Python
Python中的多重装饰器
2015/04/11 Python
python实现将内容分行输出
2015/11/05 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
机械工程系毕业生求职信
2013/09/27 职场文书
高二历史教学反思
2014/01/25 职场文书
搞笑获奖感言
2014/01/30 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
给公司的建议书范文
2014/05/13 职场文书
教师批评与自我批评材料
2014/10/16 职场文书
护理心得体会范文
2016/01/22 职场文书