• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > Drag事件编辑器实现拖拽上传图片效果

Drag事件编辑器实现拖拽上传图片效果

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含Drag,编辑器,上传等相关知识,匿名希望在学习及工作中可以帮助到您
这次给大家带来Drag事件编辑器实现拖拽上传图片效果,Drag事件编辑器实现拖拽上传图片效果的注意事项有哪些,下面就是实战案例,一起来看一下。

本站的编辑器图片上传便是使用的这部分

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数据
                        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 + ")");
                    }
                });
            });

相信看了本文案例你已经掌握了方法,更多精彩请关注微课江湖其它相关文章!

推荐阅读:

H5的LocalStorage本地存储使用详解

自定义实现可以播放暂停、进度拖拽、音量控制及全屏的H5播放器

以上就是Drag事件编辑器实现拖拽上传图片效果的详细内容,更多请关注微课江湖其它相关文章!

您可能想查找下面的文章:

  • 详解HTML5中的拖放事件(Drag 和 drop)
  • HTML5+CSS3实现拖放(Drag and Drop)示例
  • 突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
  • HTML5中如何实现图片的拖放
  • HTML5新增属性之拖拽属性(介绍)
  • html5draggable属性是如何做到页面拖动效果的?方法总结在这里!
  • HTML5拖放:Drag和Drop分别指什么?怎么使用的?
  • H5的Drag与Drop详解
  • Drag事件编辑器实现拖拽上传图片效果
  • HTML5讲解之拖拽事件dragstart、drag和dragend

相关文章

  • 2018-12-03h5实现放大镜效果的代码
  • 2018-12-03详解html5 Canvas drawing的示例代码 (二)
  • 2018-12-03对于一个高中学历前端开发工程师,在北京这样的大城市,该不该耗费精力自考一个本科学历?
  • 2017-08-06HTML5未来发展趋势
  • 2017-08-06深入理解HTML的FormData对象
  • 2018-12-03用Geolocation获取地理位置信息
  • 2018-12-03基于HTML5 的人脸识别技术
  • 2017-08-06html5 css3网站菜单实现代码
  • 2018-12-03H5怎样做出日历校验功能
  • 2018-12-03HTML5实现上传图片预览效果代码

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • HTML5本地存储应用sessionStorage和localStorage
    • 使用HTML5技术开发一个属于自己的超酷颜色选择器
    • 基于html5 DeviceOrientation 实现微信摇一摇功能
    • 通过Canvas及File API缩放并上传图片完整示例_html5教程技巧
    • html5之使用地理定位的代码分享
    • html5小游戏在微信朋友圈火,你怎么看这件事?
    • 使用纯HTML5编写一款网页上的时钟的代码分享_html5教程技巧
    • HTML5 游戏开发 之 资源加载篇(2)
    • 如何使用canvas画一个圆?用canvas画圆的三种动态实现方法
    • popstate如何使用?总结popstate实例用法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有