zoukankan      html  css  js  c++  java
  • 简单实现可拖动div

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Pragma" content="no-cache">
    
    <meta http-equiv="Cache-Control" content="no-cache">
    
    <meta http-equiv="Expires" content="0">
    
    <head>
    <script>
    window.onload=function(){
    var d=document.getElementById('div1');
    if(document.addEventListener) 
    {
    document.addEventListener("mousemove",moveHandler,true);
    document.addEventListener("mouseup",upHandler,true); 
    }
    else
    {
    document.attachEvent("onmousemove",moveHandler);
    document.attachEvent("onmouseup",upHandler); 
    
    }
    d.onmouseup=addE;
    function moveHandler(e)
    {
    if (!e) e=window.event;
    d.style.left=e.clientX+'px';
    d.style.top=e.clientY+'px';
    }
    function upHandler(e) 
    { 
    if(document.removeEventListener) 
    { 
    document.removeEventListener("mouseup",upHandler,true); 
    document.removeEventListener("mousemove",moveHandler,true); 
    } 
    else 
    { 
    document.detachEvent("onmouseup",upHandler); 
    document.detachEvent("onmousemove",moveHandler); 
    }
    if(e.stopPropagation) e.stopPropagation(); 
    else e.cancelBubble=true; 
    }
    
    function addE()
    {
    if(document.addEventListener) 
    {
    document.addEventListener("mousemove",moveHandler,true);
    document.addEventListener("mouseup",upHandler,true); 
    }
    else
    {
    document.attachEvent("onmousemove",moveHandler);
    document.attachEvent("onmouseup",upHandler); 
    
    }
    }
    }
    </script>
    </head>
    <body>
    <div id='div1'  style='left:80px;top:100px;position:absolute;80px;background:#aaaaaa;'>here!</div>
    
    
    </body>
    </html>


    主要利用了mousemove和mouseup事件。当然,还要注意事件处理的方式,这里禁用了冒泡。

    mousemove:鼠标每移动一个像素,就会触发一次事件。

  • 相关阅读:
    java数据库访问类和接口
    数据删除的用法
    短信发送(M800)
    Spring注解开发(六)扩展原理
    观察者模式(Obeserver Pattern)
    Spring注解开发(五)声明式事务
    Spring注解开发(四)AOP原理与源码分析
    Spring注解开发(三)属性赋值与自动装配
    Spring注解开发(二)生命周期
    Spring注解开发(一)组件注册
  • 原文地址:https://www.cnblogs.com/chenjianhong/p/4145020.html
Copyright © 2011-2022 走看看