H5新增API:拖拽,文件API

拖拽API

属性

  • draggable 设置为 draggable=true 可以被拖拽

拖拽事件

  • ondragstart 开始被拖动的时候触发 绑定给被拖动的元素
  • ondrag 拖动的过程总被连续触发 绑定给被拖动的元素
  • ondragend 停止拖动的时候的触发 绑定给被拖动的元素
  • ondragenter 当被拖拽的元素进入到目标元素 绑定给目标元素 用于进入目标去区域时 目标区域样式改变
  • ondrageover 当被拖拽的元素在目标元素内移动 绑定给目标元素 若想触发drop时间,必须阻止默认动作 event.preventDefault()
  • ondrageleave 当被拖拽的元素离开目标元素 绑定给目标元素
  • ondrop 在目标元素内停止拖拽 绑定给目标元素

dataTransfer 对象

  • e.dataTransfer.setData('传输名',传输对象) 用于提交传输对象
  • e.dataTransfer.getData('传输名') 用于获取传输对象
  • e.dataTransfer.files 获取被drop的外部文件

文件API

上传input

  • 多文件上传 设置属性 multiple
  • 限制上传文件的格式 属性 `accept= " image/jpeg text/html image/* "

FileList对象

  • 是用户上传或者拖拽到浏览器的 文件的集合
  • 可以通过 inputElement.files 来获取
  • 是一个类数组对象 由File对象组成

File对象

  • 属性 name
  • 属性 size
  • 属性 type
  • 属性 lastModified
  • 属性 lastModifiedDate

FileReader

属性
  • result 读取结果
  • error 错误内容
  • readyState 读取状态
方法
  • readAsText() 把文件读取为文本
  • readAsDataURL() 读取为base64图片编码
  • readAsArrayBuffer()
  • readAsBinaryString()
  • abort() 终止读取操作
事件
  • onerror 读取错误时触发
  • onabort 读取中断时触发
  • onloadstart 读取开始时触发
  • onload 读取成功时触发
  • onloadend 读取结束时 不论成功或失败
  • onprogress 读取过程中多次触发
综合使用:
    var box = document.querySelector("#box");
    
    box.addEventListener("dragover", function(e) {
        e.preventDefault();
    }, false);

    box.addEventListener("drop", function(e) {
        e.preventDefault();

        [].forEach.call(e.dataTransfer.files, function(itemFile) {
            console.log(e.dataTransfer.files)
            readImage(itemFile);
        })

    }, false);

    function readImage(fileObj) {
        var frObj = new FileReader();

        frObj.onload = function() {
            var img = document.createElement("img");
            img.src = frObj.result;
            document.querySelector("#box").appendChild(img);
        }

        frObj.readAsDataURL(fileObj);
    }

XHR2

FormData

构造

  • new FormData([formElement])

方法

  • append(key, value)
  • delete(key)
  • get(key)
  • set(key,value)
  • ....

在Ajax中的使用

  • XHR 作为send()方法的参数 发送post请求
  • jquery
    • 设置data的值为 FormData对象
    • 还需要设置 processData:falsecontentType:false

XHR2新增属性

  • timeout

XHR新增的事件

  • timeout 请求超时时触发
  • error 请求失败时
  • abort 请求中断时
  • load 响应成功后
  • loadstart 开始请求时
  • loadend 结束响应时
  • progress 请求响应过程中连续触发

ProgressEvent

  • 属性 loaded 当前下载了多少字节
  • 属性 total 总的字节数
  • 属性 lengthComputable 长度是否可计算

XMLHttpRequestUpload 对象

作用

  • 提供了各种事件来监听文件上传的进度
  • 常用progress事件。 获取progressEvent

构建

  • xhr.upload

事件

  • error
  • timeout
  • load
  • loadstart
  • loadend
  • abort
  • progress
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容