>  기사  >  웹 프론트엔드  >  드래그 이벤트 편집기는 드래그 앤 드롭 업로드 이미지 효과를 구현합니다.

드래그 이벤트 편집기는 드래그 앤 드롭 업로드 이미지 효과를 구현합니다.

php中世界最好的语言
php中世界最好的语言원래의
2018-03-27 09:54:262362검색

이번에는 사진 드래그 및 업로드 효과를 구현하기 위한 드래그 이벤트 편집기 를 소개합니다. 사진 드래그 및 업로드 효과를 구현하기 위한 드래그 이벤트 편집기의 주의 사항 은 무엇입니까? 살펴보자.

이 사이트의 편집기에서 이미지를 업로드하는 데 사용되는 부분입니다

Seajs 정의 도구 모듈

/**
 * Created by zhaojunlike on 8/22/2017.
 */
define(function (require, exports, module) {
    /**
     * 截图粘贴
     * @param selector
     * @param callback
     */
    exports.paste = function (selector, callback) {
        document.querySelector(selector).addEventListener("paste", function (ev) {
            var data = ev.clipboardData;
            var items = (event.clipboardData || event.originalEvent.clipboardData).items;
            for (var i in items) {
                var item = items[i];
                //如果是图片
                if (item.kind === 'file' && item.type.indexOf('image') > -1) {
                    var blob = item.getAsFile();
                    var reader = new FileReader();
                    //reader读取完成后,xhr上传
                    reader.onload = function (event) {
                        var base64 = event.target.result;
                        //ajax上传图片
                        //返回一个base64数据
                        var img = {type: item.type, kind: item.kind};
                        if (typeof callback === "function") {
                            callback(event.target.result, img, event);
                        }
                    }; // data url!
                    reader.readAsDataURL(blob);//reader
                }
            }
        });
    };
    /**
     * 拖拽上传
     * @param selector
     * @param callback
     */
    exports.drag = function (selector, callback) {
        var element = document.querySelector(selector);
        element.addEventListener("drop", function (e) {
            e.preventDefault();
            var files = e.dataTransfer.files;
            for (var i = 0; i < files.length; i++) {
                //回调文件
                //alert("Drop " + file[i].name.toString());
                var reader = new FileReader();
                var item = files[i];
                reader.onload = function (event) {
                    var base64 = event.target.result;
                    //返回一个base64数据
                    var img = {type: item.type, name: item.name};
                    if (typeof callback === "function") {
                        callback(event.target.result, img, event);
                    }
                };
                reader.readAsDataURL(files[i]);//reader
            }
            return false;
        });
        element.addEventListener("dragenter", function (e) {
            e.stopPropagation();
            e.preventDefault();
        });
        element.addEventListener("dragover", function (e) {
            e.dataTransfer.dropEffect = "copy";
            e.stopPropagation();
            e.preventDefault();
        });
        document.body.addEventListener("dragover", function (e) {
            e.stopPropagation();
            e.preventDefault();
            return false;
        });
    }
    /**
     * 解析粘贴过来的内容,看是否有不是本站的图片,解析出来上传到本站
     */
    exports.parseImg = function () {
    }
});

사용 방법:

            //粘贴上传图片
            Edtools.paste("#post_content", function (base64, image, event) {
                $.post("{:url('api/uploader/upEditorImg')}",{base:base64}, function (ret) {
                    layer.msg(ret.msg);
                    if (ret.code === 1) {
                        //新一行的图片显示
                        editor.insertValue("\n![" + ret.data.title + "](" + ret.data.path + ")");
                    }
                });
            });
            //拖拽上传图片
            Edtools.drag("#post_content", function (base64, image, event) {
                $.post("{:url('api/uploader/upEditorImg')}",{base:base64}, function (ret) {
                    layer.msg(ret.msg);
                    if (ret.code === 1) {
                        //新一行的图片显示
                        editor.insertValue("\n![" + ret.data.title + "](" + ret.data.path + ")");
                    }
                });
            });

이 기사의 사례를 읽은 후 방법을 마스터했다고 믿습니다. , 다른 PHP 중국어 웹사이트 관련 기사를 주목해 주세요!

추천 도서:

H5 LocalStorage의 로컬 스토리지 사용량에 대한 자세한 설명

일시 중지, 진행 드래그, 볼륨 조절 및 전체 화면 재생이 가능한 H5 플레이어 맞춤 구현

위 내용은 드래그 이벤트 편집기는 드래그 앤 드롭 업로드 이미지 효과를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.