• 拖放功能


     1 <!doctype html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>drag</title>
     6     <style type="text/css">
     7     .draggable{position: absolute;width:432px;height:424px;background: url(cat.jpg) no-repeat;cursor: pointer;}
     8     </style>
     9 </head>
    10 <body>
    11 <div id="myDiv" class="draggable">
    12     <!-- <img src="cat.jpg" alt="" /> -->
    13 </div>
    14 
    15     <canvas id="drawing" width="200" height="200">A drawing of something.</canvas>
    16 
    17 
    18     <script type="text/javascript">
    19 
    20     var addEvent = document.addEventListener ? function(el, type, fn){
    21         el.addEventListener(type, fn, false);
    22     } : function(el, type, fn){
    23         el.attachEvent("on" + type, function(){
    24             fn.apply(el, arguments);
    25         });
    26     };
    27 
    28     var removeEvent = document.removeEventListener ? function(el, type, fn){
    29         el.removeEventListener(type, fn, false);
    30     } : function(el, type, fn){
    31         el.detachEvent("on" + type, function(){
    32             fn.apply(el, arguments);
    33         });
    34     };
    35 
    36     var myDiv = document.getElementById("myDiv");
    37 
    38     var DragDrop = function(){
    39         var dragging = null,
    40             diffX = 0,
    41             diffY = 0;
    42 
    43         function handleEvent(event){
    44 
    45             // 获取事件和目标
    46             event = event || window.event;
    47             var target = event.target || event.srcElement;
    48             console.log("target:",target);
    49 
    50             switch(event.type){
    51                 case "mousedown":
    52                     console.log("case 1");
    53                     if(target.className.indexOf("draggable") > -1){
    54                         dragging = target;
    55                         diffX = event.clientX - target.offsetLeft;
    56                         diffY = event.clientY - target.offsetTop;
    57                     }
    58                     break;
    59                 case "mousemove":   
    60                     
    61                     if(dragging !== null){
    62                         console.log("case 2");
    63                         // 指定位置
    64                         dragging.style.left = event.clientX - diffX + 'px';
    65                         dragging.style.top = event.clientY - diffY + 'px';
    66                     }
    67                     break;
    68                 case "mouseup" :
    69                     console.log("case 3");
    70                     dragging = null;
    71                     break;
    72             }
    73         }
    74 
    75         // 公共接口
    76         return {
    77             enable : function(){
    78                 console.log("started");
    79                 addEvent(document, "mousedown", handleEvent);
    80                 addEvent(document, "mousemove", handleEvent);
    81                 addEvent(document, "mouseup", handleEvent);
    82             },
    83             disable : function(){
    84                 removeEvent(document, "mousedown", handleEvent);
    85                 removeEvent(document, "mousemouve", handleEvent);
    86                 removeEvent(document, "mouseup", handleEvent);
    87             }
    88         }
    89     }();
    90     DragDrop.enable();
    91     //DragDrop.disable();
    92     </script>
    93 </body>
    94 </html>
  • 相关阅读:
    ASP.NET Core 集成 WebSocket
    如何在CentOS7上安装桌面环境?
    Visual Studio 2017 远程调试(Remote Debugger)应用
    cmd sc命令进行服务操作
    EntityFrameworkCode 操作MySql 相关问题
    Windows下安装PHP开发环境
    未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序
    System.Runtime.InteropServices.COMException (0x800A03EC): 无法访问文件
    c# WinFo判断当前程序是否已经启动或存在的几种方式
    MVC自定义视图引擎地址
  • 原文地址:https://www.cnblogs.com/chuyu/p/3389498.html
Copyright © 2020-2023  润新知