拖拽

2016-09-27  本文已影响37人  Simon_s

<!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>

上一篇 下一篇

猜你喜欢

热点阅读