zoukankan      html  css  js  c++  java
  • html5 drag 文件拖拽浅淡

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            .container {
                width: 200px;
                height: 200px;
                background: #ccc;
                margin: 60px auto;
                border: 1px solid silver;
                text-align: center;
                line-height: 200px;
            }
        </style>
        <script>
            window.onload = function () {
                //ondragenter  拖拽文件进入时触发的事件
                //ondragleave  拖拽文件离开时触发的事件
                //ondragover   拖拽鼠标悬停的时候触发的事件
                //ondrop       释放鼠标的时候触发的事件,(前提是ondragover阻止默认事件才能被被触发,本身也要阻止默认事件)
                //为了更好的兼容,建议都使用addEventListener来进行绑定
                let odiv = document.getElementById('container');
    
                odiv.addEventListener('dragenter', function () {
                    this.innerHTML = '请释放鼠标'
                }, false);
    
                odiv.addEventListener('dragleave', function () {
                    this.innerHTML = '请将文件拖拽到此处';
                });
                odiv.addEventListener('dragover', function (ev) {
                    console.log('鼠标正在上面');
                    ev.preventDefault();
                });
                odiv.addEventListener('drop', function (ev) {
                    //文件信息(数组形式)
                    console.log(ev.dataTransfer.files);
                    console.log('你已经释放鼠标了');
                    //注意:阻止默认事件应该放置在FileReader上面
                    ev.preventDefault();
    
                    //前端读取文件(注意:以下方法只兼容到IE10)
                    let file = ev.dataTransfer.files[0];
                    let reader = new FileReader();
                    reader.onload = function () {
                        //读取完之后,文件会存放在this.result里面,那么就可以进行相关操作
                        console.log(this.result);
                        alert(this.result);
                    };
                    reader.onerror = function () {
    
                    };
                    reader.readAsText(file);
                    //reader.readAsText(file)   以文本的形式读取(文本文件)
                    //reader.readAsDataUrl(file)  base64 以图片的形式读取(图片文件)
                    //reader.readAsArrayBuffer(file)  原始的二进制数据(编辑,不常用)
                    //reader.readAsBinaryBuffer(file)   二进制的文件形式数据(文件上传)
    
    
                }, false)
    
            }
        </script>
    </head>
    <body>
    <div class="container" id="container">
        请将文件拖拽到此处
    </div>
    </body>
    </html>
  • 相关阅读:
    ASP.NET Web API编程——客户端调用
    .Net多线程编程—使用Visual Studio 2012进行调试
    .Net多线程编程—误用点分析
    中国省市区数据mysql脚本
    swift/IOS 多线程使用
    swift 自定义TabBarItem
    swift 动画切换View心地层次顺序
    swift 用协议实现代理传值功能
    Swift简单新闻APP实例
    swift NSMutableArray 排序
  • 原文地址:https://www.cnblogs.com/rickyctbu/p/9653220.html
Copyright © 2011-2022 走看看