简单的jQ拖拽插件

(function($) {
  $.fn.drag = function() {
    // 获取当前元素对象
    var $this = $(this);
    // 获取父级元素
    var parent = $(this).parent();
    // 获取父级元素的高和宽
    var pW = parent.width();
    var pH = parent.height();
    // 当前元素的宽等于width加左右padding
    var thisWidth = $this.width() + parseInt($this.css("padding-left"), 10) + parseInt($this.css("padding-right"), 10);
    // 当前元素在高等于height加上下padding
    var thisHeight = $this.width() + parseInt($this.css("padding-top"), 10) + parseInt($this.css("padding-bottom"), 10);

    var x, y, positionX, positionY;
    // 是否按下
    var isDown = false;

    parent.css({
      "position": "relative",
      "overflow": "hidden"
    });

    $this.css({
      "cursor": "move",
      "position": "absolute"
    }).mousedown(function(e) {
        // 当前元素按下时,其他原始置于底下
      parent.children().css({
        "zIndex": 0
      });
            // 当前元素上移
      $this.css({
        "zIndex": 1
      });
      isDown = true;
      // 获取鼠标位置
      x = e.pageX;
      y = e.pageY;
            // 获取元素左上角位置
      positionX = $this.position().left
      positionY = $this.position().top

      return false
    })

    $(document).mouseup(function() {
        // 鼠标释放时,标识符为false
      isDown = false
    }).mousemove(function(e) {
        // 移动的时候,获取鼠标位置
      var xPage = e.pageX;
      // 移动的位置是实时的,相对于点下去的位置,小了就是左移动,大了就右移动, moveX 为元素left 和鼠标移动位置差的和
      var moveX = positionX + xPage - x;
      var yPage = e.pageY;
      var moveY = positionY + yPage - y;
      // 移动
      if (isDown === true) {
        $this.css({
          top: moveY,
          left: moveX
        })
      } else {
        return;
      }

      if (moveX < 0) {
        $this.css({
          "left": "0"
        })
      }
      if (moveX > (pW - thisWidth)) {
        $this.css({
          left: pW - thisWidth
        })
      }
      if (moveY < 0) {
        $this.css({
          "top": "0"
        })
      }
      if (moveY > (pH - thisHeight)) {
        $this.css({
          left: pH - thisHeight
        })
      }
    })

  }
})(jQuery)