js可以随意拖拽的div的实现

最近花了点时间用纯JS写了一个扫雷程序,写出来效果很差,自己长时间使用面向过程的方式编写代码,写的程序到后面都乱了,有必要找时间好好的深入理解一下OOP了。有时间会把写的东西拿上来。就当是留个纪念吧。打算用OOP重新写个扫雷程序,希望令自己满意。

——————————————碎碎念

记录一个实现随意拖拽div的实现方法,当作备忘吧,指不定什么时候用到了呢。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>divDrag</title>
    <style>
      #div1{
        width: 300px;
        height: 300px;
        background-color: #ccc;
        /*一定要绝对定位*/
        position: absolute;
      }
    </style>
  </head>
  <body>
    <div id="div1"></div>
    <script src="drag.js"></script>
  </body>
</html>

 

*********************************************

//面向过程式写法

window.onload = function(){
  var div1 = document.getElementById("div1");
  div1.onmousedown = function(ev){
    var oevent = ev || event;

    var distanceX = oevent.clientX - div1.offsetLeft;
    var distanceY = oevent.clientY - div1.offsetTop;

    document.onmousemove = function(ev){
      var oevent = ev || event;
      div1.style.left = oevent.clientX - distanceX + 'px';
      div1.style.top = oevent.clientY - distanceY + 'px'; 
    };
    document.onmouseup = function(){
      document.onmousemove = null;
      document.onmouseup = null;
    };
  ;
};

//所谓的面向对象实现(这就是面向对象吗?感觉逻辑上也不咋的呀)

稍后更新....

posted @ 2016-09-01 23:37  tisikcci  阅读(46006)  评论(5编辑  收藏  举报