拖拽

<html>
    <head>
        <title>Simulated Drag And Drop Example</title>
        <script type="text/javascript" >
  var EventUtil = new Object;
  //添加事件处理  
EventUtil.addEventHandler = function (oTarget, sEventType, fnHandler) {  
   // EventUtil.addEventHandler(document.body, "mousemove", handleMouseMove);
 if (oTarget.addEventListener){//firefox 
        oTarget.addEventListener(sEventType, fnHandler, false);
    } else if (oTarget.attachEvent) {//IE
        oTarget.attachEvent("on" + sEventType, fnHandler);
  
    } else {//others
        oTarget["on" + sEventType] = fnHandler;
  
    }
};
        //删除事件处理
EventUtil.removeEventHandler = function (oTarget, sEventType, fnHandler) {
    if (oTarget.removeEventListener) {//firefox
        oTarget.removeEventListener(sEventType, fnHandler, false);
    } else if (oTarget.detachEvent) {//IE
        oTarget.detachEvent("on" + sEventType, fnHandler);
    } else { //others
        oTarget["on" + sEventType] = null;
    }
};
//事件格式化,将ie下的对象尽可能的调整为DOM的事件模型
EventUtil.formatEvent = function (oEvent) {

    if (typeof oEvent.charCode == "undefined") {
        oEvent.charCode = (oEvent.type == "keypress") ? oEvent.keyCode : 0;
        oEvent.isChar = (oEvent.charCode > 0);
    }
   
    if (oEvent.srcElement && !oEvent.target) {
        oEvent.eventPhase = 2;
        oEvent.pageX = oEvent.clientX + document.body.scrollLeft;
        oEvent.pageY = oEvent.clientY + document.body.scrollTop;
       
        if (!oEvent.preventDefault) {
                oEvent.preventDefault = function () {
                    this.returnValue = false;
                };
        }

        if (oEvent.type == "mouseout") {
            oEvent.relatedTarget = oEvent.toElement;
        } else if (oEvent.type == "mouseover") {
            oEvent.relatedTarget = oEvent.fromElement;
        }

        if (!oEvent.stopPropagation) {
                oEvent.stopPropagation = function () {
                    this.cancelBubble = true;
                };
        }
       
        oEvent.target = oEvent.srcElement;
        oEvent.time = (new Date).getTime();
   
    }
   
    return oEvent;
};
//获得事件对象
EventUtil.getEvent = function() {
    if (window.event) {
        return this.formatEvent(window.event);
    } else {
        return EventUtil.getEvent.caller.arguments[0];
    }
};

  
  
  </script>
        <script type="text/javascript">
                  
            function handleMouseMove() {
                var oEvent = EventUtil.getEvent();
                var oDiv = document.getElementById("div1");

                oDiv.style.left = oEvent.clientX;//获取鼠标位置               
    oDiv.style.top = oEvent.clientY;
            }
                      
            function handleMouseDown() {
                EventUtil.addEventHandler(document.body, "mousemove", handleMouseMove);
                EventUtil.addEventHandler(document.body, "mouseup", handleMouseUp);
            }
           
            function handleMouseUp() {
                EventUtil.removeEventHandler(document.body, "mousemove", handleMouseMove);
                EventUtil.removeEventHandler(document.body, "mouseup", handleMouseUp);
            }
           
        </script>
        <style type="text/css">
            #div1 {
                background-color: red;
                height: 100px;
                width: 100px;
                position: absolute;
            }
        </style>
    </head>
    <body>
        <p>Try dragging the red square.</p>
        <p><div id="div1" οnmοusedοwn="handleMouseDown()"></div> </p>
    </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值