h5拖拽上传图片

h5实现拖拽上传图片

本文将为大家介绍如何通过js实现拖拽上传图片。

首先我们要禁用调浏览器默认的拖拽事件:

 1 window.onload = function(){
 2                 //拖离
 3                 document.addEventListener(‘dragleave‘,function(e){e.preventDefault();});
 4                 //拖后放
 5                 document.addEventListener(‘drop‘,function(e){e.preventDefault();});
 6                 //拖进
 7                 document.addEventListener(‘dragenter‘,function(e){e.preventDefault();});
 8                 //拖来拖去
 9                 document.addEventListener(‘dragover‘,function(e){e.preventDefault();});
10 };

然后在网页上定义一个拖拽放置区域,也就是我们要将图片放置回显的区域:

1 <div id="dragImg"></div>

绑定拖拽事件:

1 var box = document.getElementById("dragImg");

box.addEventListener("drop",function(e){
            e.preventDefault(); //取消默认浏览器拖拽效果
            var fileList = e.dataTransfer.files; //获取文件对象
            if(fileList.length == 0){return false;}
            if(fileList[0].type.indexOf(‘image‘) === -1){
                alert(‘您拖的不是图片!‘)
                return false;
            }
            var img = window.URL.createObjectURL(fileList[0]);
//          var filesize = Math.floor((fileList[0].size)/1024);
            $("#dragImg").css({"background":"url("+img+") no-repeat center center","backgroundSize":"100% 100%"});
            var imgDatatype = filename.split(".")[1];
            var formData = new FormData();
           formData.append("name",fileList[0],imgDatatype);  //name:为一半表单上传时的元素name是和后台约定好的
            $.ajax({
                    type:"post",
                    url:‘your Ajax url‘,//ajaxurl
                    async:false,
                    dataType:"text",
                    data:formData,
                    processData : false,
                    contentType : false,
                    success:function(data){
                        if(data){                                            $("#dragImg").css({"background":"url("+data+") no-repeat center center","backgroundSize":"100% 100%"});
                        }else{
                           console.log(data)
                        }
                    },error:function(e){
                        console.log(e)
                    }
                })
        },false);

这就是图片拖拽上传的前端处理方法,over!

原文地址:https://www.cnblogs.com/7Ezreal/p/8213612.html

时间: 2024-08-04 01:52:26

h5拖拽上传图片的相关文章

HTML5拖拽上传图片预览

参考博文1:http://blog.csdn.net/testcs_dn/article/details/8695532 参考博文2:http://justcoding.iteye.com/blog/2105760 1.文件API:(File API) file类型的的表单控件选择的每一个文件都是一个file对象,而FileList对象则是这些file对象的集合列表,代表所选择的所有文件.file对象继承于Blob对象,该对象表示二进制原始数据,提供slice方法,可以访问到字节内部的原始数据块

H5拖拽 构造拖拽及缩放 pdf展示

前言: 协助项目需要实现一个签名的功能. 功能说明:1.有文本签名和头像签名.2.头像签名需要实现可拖拽功能.3.需要展示的是pdf的文件并需要获取签名位于pdf文件的相对位置. 功能一:实现拖拽 思路:H5拖拽及构造函数实现拖拽及缩放 要点:1.需要设置拖拽元素属性 draggable="true" 2.可拖拽的元素设置ondragstart获取数据   3.对可放置拖拽元素的设置ondragover函数 默认地,无法将数据/元素放置到其他元素中.如果需要设置允许放置,我们必须阻止对

HTML5 CSS3 经典案例:无插件拖拽上传图片 (支持预览与批量) (二)

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/31513065 上一篇已经实现了这个项目的整体的HTML和CSS: HTML5 CSS3 经典案例:无插件拖拽上传图片 (支持预览与批量) (一) 这篇博客直接在上篇的基础上完成,最终效果: 效果图1: 效果图2: 好了,请允许我把图片贴了两遍,方便大家看效果了~ 可以看出我们的图片的li的html其实还是挺复杂的,于是我把html文档做了一些修改: <span style=&quo

h5学习--七个h5拖拽事件

<script> // 七个h5拖拽事件 const box = document.getElementById('box') const left = document.getElementById('left') const right = document.getElementById('right') let num = 0 //ondragstart 拖拽开始的时候,进行移动 right.ondragstart= function(){ console.log("lll&q

H5拖拽事件-- 自定义创建a标签热区

有两个BUG未更正, 1.拖拽后,动态创建的div始终在鼠标的下方,导致拖拽定位不准确 2.当窗口为自适应时,定位left为百分比,窗口改变大小时会存在定位偏差 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="./jquery-1

仿h5拖拽

在h5中有个拖拽的声明式命令,就如html属性一样,简单强大. 而在网页上拖拽的功能还是需求很大的,所以对这方面应该去仔细了解一下. 所以仿一一下它的实现.只是仿了它的复制一份到目标容器的功能.它还有很多功能. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </h

H5 拖拽,直接指对象设置可拖拽

页面上, 弹个小窗体, 又不想 加载一堆js, 有想简单的就能让他可以拖动?   嗯,下面有这样一个函数,调用下就好了! 1. 先来说说 H5的 拖拽 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放. 设置元素为可拖放 首先,为了使元素可拖动,把 draggable 属性设置为 true : <img draggable="true" /> 拖动什么 - ondragstart 和 setData() 然后,规定当元素被拖动时,会发生什么. 在上面的例子中,on

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

前言 昨天利用css2的clip属性实现了网页进度条觉得还不错,但是很多情况下,我们在那些时候用进度条呢,一般网页加载的时候如果有需要可以用,那么问题就来了,怎么才算整个加载完毕呢,是页面主要模块加载完毕,还是window.onload之后算呢,对这些方面,我真不敢随意回答,因业务需求而定,本文想要说的是在图片上传的时候用到的进度条. 效果展示 详细参考请移步至html5demo HTML5 新增的拖拽相关事件说明 1.ondragover 效果图演示是所看见的可以将文件不仅仅是图片拖拽到该di

图片拖拽上传至服务器

今天遇到一个新的问题,就是图片拖拽上传至服务器,一般,我们会想到使用ajax,但是现在问题是ajax默认是没有提交事件的,也就是说,我们拖拽上传图片后,没法将上传的图片信息发送到服务器,这时候就要模拟form表单的提交了. 既然要上传,这里首先要讲到的就是图片拖拽上传了. oDiv.ondrop = function(e) { e.preventDefault(); //获取拖拽过来的对象,文件对象集合 var fs = e.dataTransfer.files; //若为表单域中的file标签