HTML5 js实现拖拉上传文件功能


Posted in Javascript onNovember 20, 2020

在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>

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

Javascript 相关文章推荐
找到一点可怜的关于dojo资料,谢谢作者!
Dec 06 Javascript
javascript之卸载鼠标事件的代码
May 14 Javascript
仿百度的关键词匹配搜索示例
Sep 25 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
Nov 17 Javascript
js arguments,jcallee caller用法总结
Nov 30 Javascript
前端轻量级MVC框架CanJS详解
Sep 26 Javascript
javascript中DOM复选框选择用法实例
May 14 Javascript
jQuery手动点击实现图片轮播特效
Apr 20 Javascript
js弹出窗口简单实现代码
Mar 22 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
Jun 12 jQuery
详解使用jest对vue项目进行单元测试
Sep 07 Javascript
Vue+tracking.js 实现前端人脸检测功能
Apr 16 Javascript
Bootstrap表单控件使用方法详解
Jan 11 #Javascript
老生常谈的跨域处理
Jan 11 #Javascript
bootstrap选项卡使用方法解析
Jan 11 #Javascript
常用的javascript设计模式
Jan 11 #Javascript
WebView启动支付宝客户端支付失败的问题小结
Jan 11 #Javascript
Bootstrap实现提示框和弹出框效果
Jan 11 #Javascript
分享bootstrap学习笔记心得(组件及其属性)
Jan 11 #Javascript
You might like
PHP的变量总结 新手推荐
2011/04/18 PHP
php防止sql注入之过滤分页参数实例
2014/11/03 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
Yii框架自定义数据库操作组件示例
2019/11/11 PHP
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
Jquery 跨域访问 Lightswitch OData Service的方法
2013/09/11 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
推荐10个2014年最佳的jQuery视频插件
2014/11/12 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
2015/03/26 Javascript
js实现继承的5种方式
2015/12/01 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
python海龟绘图实例教程
2014/07/24 Python
python optparse模块使用实例
2015/04/09 Python
python利用拉链法实现字典方法示例
2017/03/25 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
python验证码图片处理(二值化)
2019/11/01 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
塔吉特百货公司官网:Target
2017/04/27 全球购物
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
环境工程毕业生自荐信
2013/11/17 职场文书
物业管理毕业生个人的求职信
2013/11/30 职场文书
应届生自我鉴定
2013/12/11 职场文书
关爱留守儿童标语
2014/06/18 职场文书
授权委托书样本
2014/09/25 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
团员个人总结
2015/02/26 职场文书
HTML中的表格元素介绍
2022/02/28 HTML / CSS