拖拽事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            width: 500px;
            height: 500px;
            background-color: red;

        }
        img{
            width:200px;
        }
    </style>
    <script src="../js/事件.js"></script>
</head>

<body>
<img src="../img/春.jpg" alt="" draggable="true" >

<div >
 拖拽
</div>
<div style="background-color: pink;width:50px;height:50px;"  draggable="true">
    哈哈
</div>
<script>
    window.onload=function () {
        var Img=document.getElementsByTagName("img")[0];
        var Div=document.getElementsByTagName("div")[0];
        var Div2=document.getElementsByTagName("div")[1];
        var i=0;
        Img.ondragstart=function (ev) {

//          var ev=ev||window.event;
        };
        Div2.ondragstart=function (ev) {
             ev.dataTransfer.setData("key","value");  // 设置数据 可以获拖拽的是哪呢 利用索引
              ev.dataTransfer.effectAllowed="link"; // 设置鼠标样式
               ev.dataTransfer.setDragImage(Img,0,0) ; // 指定拖拽的样式
        };

        Img.ondrag=function () {
          document.title=i++;
        };
        Img.ondragend=function () {

        };
        Div.ondragenter=function () {

        };
        Div.ondragover=function (ev) {
              ev.preventDefault();  //是目标位置可以进行拖拽放置

        };
        Div.ondrop=function (ev) {
//            alert(ev.dataTransfer.getData("key"));
            ev.stopPropagation();  //取消冒泡  解决火狐的自动生成新窗口
            ev.preventDefault();   //取消默认行为
//            同网页的拖拽
//            Div.innerHTML="";
//            document.getElementsByTagName("body")[0].removeChild(Img);
//            Div.appendChild(Img);

//   本地元素的拖拽
           var fs=ev.dataTransfer.files;   //获取拖拽的元素的集合
            console.log(fs.length);
            console.log(fs[0].type);
            for(var i=0;i<fs.length;i++){

                if(fs[i].type.indexOf("image")!=-1){
                    var fd=new FileReader();  // 读取文件信息
                    fd.readAsDataURL(fs[i]); // 读取文件
                    fd.onload=function () {   // 读取成功
                        var Oimg=document.createElement("img");
                        Oimg.src=this.result;
                        Div.appendChild(Oimg)
                    }
                }else{
                    alert("请上传图片")
                }

            }

        };



        Div.ondragleave=function () {

};
//            ev.stopPropagation(); //阻止冒泡
//            ev.preventDefault();  //阻止默认行为
//        }


    }
</script>
</body>
</html>
// 遇到问题 以上拖拽以图片为案例 涉及到兼容火狐浏览器 需要取消其默认行为 而且取消冒泡事件

 

posted @ 2017-06-16 13:54  瘦子先生  阅读(203)  评论(0编辑  收藏  举报