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>
    // 遇到问题 以上拖拽以图片为案例 涉及到兼容火狐浏览器 需要取消其默认行为 而且取消冒泡事件
  • 相关阅读:
    一个简单的knockout.js 和easyui的绑定
    knockoutjs + easyui.treegrid 可编辑的自定义绑定插件
    Knockout自定义绑定my97datepicker
    去除小数后多余的0
    Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR
    Azure ARM (1) UI初探
    Azure Redis Cache (3) 创建和使用P级别的Redis Cache
    Windows Azure HandBook (7) 基于Azure Web App的企业官网改造
    Windows Azure Storage (23) 计算Azure VHD实际使用容量
    Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接
  • 原文地址:https://www.cnblogs.com/shouzi/p/7027171.html
Copyright © 2011-2022 走看看