美文网首页
2018-07-27

2018-07-27

作者: Troye_3569 | 来源:发表于2018-07-27 15:56 被阅读0次
1.png

ondrag事件在元素或者选取的文本被拖动时触发

  1. 在拖动目标上触发事件(源元素):
ondragstart:用户开始拖动元素时触发
ondrag:元素正在拖动时触发
ondragend:用户完成元素拖动后触发

2.释放目标时触发的事件

ondragenter:当被鼠标拖动的对象进入其容器范围内时触发此事件
ondragover:当某被拖动的对象在另一对象容器范围内时触发此事件
ondragleave:当被鼠标拖动的对象离开其容器范围内时触发此事件
ondrop:在一个拖动过程中,释放鼠标键时触发此事件

在拖动元素时,每隔350ms会触发ondrag事件

 <script>
        // 阻止浏览器默认的一些事件
        // 对于drop,防止浏览器的默认处理数据(在drop中链接是默认打开)
        document.addEventListener("drop", function (e) {
            e.preventDefault();
        });
        // 拖动离开事件
        document.addEventListener("dragleave", function (e) {
            e.preventDefault();
        });
        // 拖动完成后触发
        document.addEventListener("dragenter", function (e) {
            e.preventDefault();
        })
        document.addEventListener("dragover", function (e) {
            e.preventDefault();
        });
        var box = document.getElementById("drop_area");
        box.addEventListener("drop", function (e) {
            console.log(e);
            var fileList = e.dataTransfer.files;//获取文件对象
            // 检测是否是拖拽文件到页面的操作
            if (fileList.length == 0) {
                return;
            }
            // 拖拉图片到浏览器可以实现预览功能
            // 规定视频格式
            Array.prototype.S = String.fromCharCode(2);
            Array.prototype.in_array = function (e) {
                console.log(e);//video/mp4
                var r = new RegExp(this.S + e + this.S);
                console.log(this.S);
                return (r.test(this.S + this.join(this.S) + this.S));
            };
            var video_type = ["video/mp4", "video/ogg"];
            // 创建一个url连接,供src属性引用
            var fileurl = window.URL.createObjectURL(fileList[0]);
            if (fileList[0].type.indexOf('image') === 0) {
                // indexOf表示找到的第几位,不存在就返回-1,存在就返回对应的index值
                console.log(fileList[0].type.indexOf('image'));
                // 如果是图片
                var str = "<img width='400px' height='400px' src='" + fileurl + "'>";
                document.getElementById('drop_area').innerHTML = str;
            } else if (video_type.in_array(fileList[0].type)) {
                console.log(fileList[0].type);
                // 如果是规定格式内的视频
                var str = "<video width='400px' height='400px' controls='controls' src='" + fileurl + "'></video>";
                document.getElementById("drop_area").innerHTML = str;
            } else {
                // 其他格式,输出文件名
                console.log(fileList);
                var str = "文件名字:" + fileList[0].name;
                document.getElementById("drop_area").innerHTML = str;
            }
            resultFile = fileList[0];
        }, false);
    </script>

相关文章

网友评论

      本文标题:2018-07-27

      本文链接:https://www.haomeiwen.com/subject/moqgmftx.html