drag---将一个元素拖进另一个元素中

        //拖拽元素
        var box = document.querySelector(".box");       
        //目标元素
        var target = document.querySelector(".box2");

        box.ondragstart = function (e) {
            //console.log(1,"开始拖拽");
            //dataTransfer 承载体,贯穿整个拖拽周期,使用setData放置数据,getData获取数据
            console.log(e.dataTransfer);
            e.dataTransfer.effectAllowed = "move";
//e.target就是被拖拽的元素
            e.dataTransfer.setData("text",e.target.id);
        }
//浏览器禁止在元素上drop (禁止将其他元素拖到目标元素上放手)
        //需要在 dragover 时阻值浏览器的默认事件才能出发  ondrop(drop:落下,投下)
        target.ondragover = function (e) {
            //console.log(6,"在目标元素上移动");
            e.preventDefault();
            e.dataTransfer.dropEffect = "move";
        }
        target.ondrop = function (e) {
            //console.log(7,"在目标元素上放手");
            //元素已经存在时,使用appendChild拼接到另一个元素中时,并且从原来父元素中删除
            
            //console.log(e.dataTransfer.getData("text"));
            var eId = e.dataTransfer.getData("text");
            target.appendChild(document.querySelector("#"+eId));
            
        }

其中:

     * dataTransfer  贯穿于整个拖拽生命周期的承载对象
     * 
     * dataTransfer.setData(format,content)
     *      format : 数据格式,支持text URL 或其他mieme类型
     *      content : 要传递的内容
     * 
     * dataTransfer.getData(format) 获取通过setData设置的值
     * 
     * dataTransfer.effectAllowed  设置拖拽元素的鼠标效果
     * 常见的有: copy link move none all copyLink...
     * 当指定为none时,ondrop无法触发
     * 只能在ondragstart里设置
     * 
     * dataTransfer.dropEffect  设置在目标元素的鼠标效果
     * 如果和 effectAllowed同时指定,则必须与 effectAllowed值相同,否则无法放置拖拽元素
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,009评论 19 139
  • 元素拖拽要使用html5的新增属性draggable="true",实际上这个属性默认就是true,但是以防不兼容...
    月光在心中阅读 499评论 0 2
  • 之前写过一篇浏览器事件的相关操作和事件运行的原理——JavaScript浏览器事件解析。这一篇主要写一些常用的事件...
    faremax阅读 1,663评论 0 0
  • 一、HTML5 1.1 认识HTML5 HTML5并不仅仅只是作为HTML标记语言的一个最新版本,更重要的是它制定...
    福尔摩鸡阅读 16,123评论 14 51
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92