成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

html5使用Drag事件編輯器拖拽上傳圖片

My_Oh_My / 3049人閱讀

摘要:使用場景圖片的拖拽指定區(qū)域進行上傳圖片粘貼進行上傳功能核心參考案例代碼定義模塊截圖粘貼如果是圖片讀取完成后,上傳上傳圖片返回一個數(shù)據(jù)拖拽上傳回調(diào)文件返回一個數(shù)據(jù)解析粘貼過來的內(nèi)容,看是否有不是本站的圖片解析出來上傳到本站使用方法粘貼上傳圖

使用場景

圖片的拖拽指定區(qū)域進行上傳

圖片粘貼進行上傳功能

核心api參考
File
clipboardData
案例代碼

Seajs 定義Tools模塊

/**
 * 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數(shù)據(jù)
                        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++) {
                //回調(diào)文件
                //alert("Drop " + file[i].name.toString());
                var reader = new FileReader();
                var item = files[i];
                reader.onload = function (event) {
                    var base64 = event.target.result;
                    //返回一個base64數(shù)據(jù)
                    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;
        });
    }

    /**
     * 解析粘貼過來的內(nèi)容,看是否有不是本站的圖片,解析出來上傳到本站
     */
    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("
![" + 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("
![" + ret.data.title + "](" + ret.data.path + ")");
                    }
                });
            });

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84812.html

相關(guān)文章

  • HTML5拖放API Drag and Drop

    摘要:此文研究中的拖放接口,提供各個屬性和方法的說明,解決拖放過程中的拖拽數(shù)據(jù)對象存儲和獲取問題。方法增加一個拖拽數(shù)據(jù)對象到屬性中,并返回增加的拖拽數(shù)據(jù)對象。若拖拽數(shù)據(jù)對象是文本字符串類型,通過回調(diào)函數(shù)獲取拖拽數(shù)據(jù)中的字符串?dāng)?shù)據(jù)。 此文研究Web API中的拖放接口,提供各個屬性和方法的說明,解決拖放過程中的拖拽數(shù)據(jù)對象存儲和獲取問題。 拖放API作用到兩個目標對象,分別是拖拽目標對象和放置...

    dantezhao 評論0 收藏0
  • HTML5 原生拖放

    摘要:發(fā)展原生拖放的發(fā)展大致可分為三個階段。在的實例基礎(chǔ)上,進一步制定了拖放的規(guī)范。也根據(jù)規(guī)范實現(xiàn)了原生拖放功能。被拖動的元素在放置目標范圍內(nèi)移動時,會持續(xù)觸發(fā)該事件。參考資料拖放操作拖拽操作拖拽類型列表高級程序設(shè)計第版第章腳本編程原生拖放 發(fā)展 原生拖放的發(fā)展大致可分為三個階段:IE4、IE5+、HTML5。 IE4 是最早在網(wǎng)頁中引入 JavaScript 拖放功能的,當(dāng)時只有圖像和選中...

    Thanatos 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<