拖拽

作者: Simon_s | 来源:发表于2016-09-27 18:59 被阅读37次

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>拖拽</title>
<style>
* {
margin: 0;
padding: 0;
}

    div {
        width: 300px;
        height: 300px;
        border: 1px solid red;
        float: left;
    }

    .box1 img {
        width: 300px;
    }
</style>

</head>
<body>
<div class="box1">

<img src="img/1.jpg" alt="" draggable="true" id="dragImg">
</div>
<div class="box2" ondragstart=""></div>
</body>
<script>

//ondragstart 作用于拖拽元素 当拖拽开始的时候被调用
//ondrag      作用于拖拽元素 拖拽过程中  持续调用
//ondragend   作用于拖拽元素 在拖拽完成时被调用
//ondragenter 作用于目标元素 在拖拽元素进入到目标元素被调用
//ondragleave 作用于目标元素 在拖拽元素离开目标元素被调用
//ondragover  作用于目标元素 在拖拽元素位于目标元素上方时  持续被调用
//ondrop      作用于目标元素 在拖拽元素位于目标元素上方鼠标松开被调用

/* img.ondragstart = function (e) {
console.log('start')
}
/!img.ondrag = function (e) {
console.log('drag')
}
!/
box2.ondragenter = function (e) {
console.log("enter")
}
box2.ondragleave = function (e) {
console.log("leave")
}
box2.ondragover = function (e) {
console.log("over")
}
box2.ondrop = function (e) {
console.log("drop")
}
img.ondragend = function (e) {
console.log("end")
}*/

//拖拽释放的步骤
//1、在 拖拽元素上 ondragstart  给e.dataTransfer 对象设置一二拖拽元素标识
//2、在  ondrop  给e.dataTransfer  获取到  设置的拖拽对象的标识
//3、通过获取到标识    去获取拖拽元素
//4、将获取到的拖拽元素  添加到目标元素内



var img = document.querySelector('img');
var box1  =document .querySelector(".box1")
var box2 = document.querySelector('.box2')


box1.ondragover = function (e) {
    e.preventDefault();
}
box1.ondrop =function (e) {
    var _id = e.dataTransfer.getData("id");
    var img = document.querySelector("#"+_id)
    box1.appendChild(img);
}


box2.ondragover = function (e) {
    //阻止默认行为
    e.preventDefault();
}
box2.ondrop =function (e) {
    // 第二步
    var _id = e.dataTransfer.getData("id");
    // 第三步
    var img = document.querySelector("#"+_id)
    // 第四步
    box2.appendChild(img);
}



img.ondragstart = function (e) {
    // dataTransfer  是事件对象用来存储拖拽信息的对象
// setData() 方法进行设置标识需要传入两个参数
// 第一个为标识的key  第二个为标识的值
    //第一步
    e.dataTransfer.setData("id",e.target.id);
    console.log("start");
}

</script>
</html>

相关文章

  • 拖拽操作

    应用: 1.拖拽排序2.拖拽上传3.拖拽裁剪 拖拽流程 确定可拖拽的内容-->开始拖拽-->拖拽过程-->结束拖拽...

  • Html5 + Css 3 文件拖拽上传功能

    拖拽上传文件功能 拖拽事件 拖拽元素ondrag 应用于拖拽元素,整个拖拽过程都会调用ondragstart应用...

  • 拖拽上传

    拖拽事件 拖拽元素ondrag 应用于拖拽元素,整个拖拽过程都会调用ondragstart应用于拖拽元素,...

  • js:拖拽事件

    拖拽事件 ondragstart当拖拽元素被开始拖拽时,event:拖拽元素。[从操作系统向浏览器拖拽文件不会触发...

  • HTML 5 拖拽

    @(HTML5)[HTML 5拖拽] [TOC] 十三、HTML 5 拖拽 HTML 5 拖拽事件 图片自带拖拽功...

  • JQuery UI 拖拽排序

    禁用拖拽: 启用拖拽:

  • MacOS 开发(十六) : 文件拖拽

    文件拖拽的核心是拖拽目标视图 (DragDestinationView),此方法会检测目标是否可拖拽类型,拖拽文件...

  • HTML5拖拽上传

    传统拖拽效果小demohtml5实现拖拽小demo调查问卷小demo拖拽拼图小demo拖拽上传小demo h5拖拽...

  • HTML5拖拽drag

    通过拖拽实现页面元素的位置改变 实现拖拽效果 源元素 - 要拖拽的文件 目标元素 - 要拖拽到哪里去 目前实现拖拽...

  • 元素拖曳 H5

    拖拽 如何让一个元素变成拖拽元素 draggable=‘true’ ondrag 应用于拖拽元素,整个拖拽过程都会...

网友评论

      本文标题:拖拽

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