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>
  • 相关阅读:
    php----爬虫(爬取豆瓣演员信息,搜索页)遇到的问题
    python-写爬虫时遇到的问题 TimeoutError: [WinError 10060]
    聚沙成塔
    买手机,继续纠结中
    问题不绕弯,死磕
    死磕,死磕死磕
    学而不践则罔
    越是忙的时候,兴趣越多
    周末小总结
    幸福和需求
  • 原文地址:https://www.cnblogs.com/rickyctbu/p/9653220.html
Copyright © 2011-2022 走看看