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>
    // 遇到问题 以上拖拽以图片为案例 涉及到兼容火狐浏览器 需要取消其默认行为 而且取消冒泡事件
  • 相关阅读:
    Git 基础
    SharePoint 2013 对象模型操作"网站设置"菜单
    SharePoint 2013 隐藏部分Ribbon菜单
    SharePoint 2013 Designer系列之数据视图筛选
    SharePoint 2013 Designer系列之数据视图
    SharePoint 2013 Designer系列之自定义列表表单
    SharePoint 2013 设置自定义布局页
    SharePoint 2013 "通知我"功能简介
    SharePoint 2013 创建web应用程序报错"This page can’t be displayed"
    SharePoint 禁用本地回环的两个方法
  • 原文地址:https://www.cnblogs.com/shouzi/p/7027171.html
Copyright © 2011-2022 走看看