zoukankan      html  css  js  c++  java
  • 拖拽事件

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            div{
                 500px;
                height: 500px;
                background-color: red;
    
            }
            img{
                200px;
            }
        </style>
        <script src="../js/事件.js"></script>
    </head>
    
    <body>
    <img src="../img/春.jpg" alt="" draggable="true" >
    
    <div >
     拖拽
    </div>
    <div style="background-color: pink;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>
    // 遇到问题 以上拖拽以图片为案例 涉及到兼容火狐浏览器 需要取消其默认行为 而且取消冒泡事件
  • 相关阅读:
    P3704 [SDOI2017]数字表格
    CF 700 E. Cool Slogans
    杜教筛学习笔记
    [BOI2004]Sequence 数字序列(左偏树)
    [WC2007]剪刀石头布(最大流)
    [NOI2009]变换序列(二分图匹配)
    文理分科(最小割)
    上帝与集合的正确用法(欧拉定理)
    [HAOI2008]圆上的整点(数论)
    主席树学习笔记
  • 原文地址:https://www.cnblogs.com/shouzi/p/7027171.html
Copyright © 2011-2022 走看看