div 拖拽

html

<!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" class="box"></div>
    <script src="drag.js"></script>
  </body>
</html>

//js面向过程式写法

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;
    };
  ;
};

jquery
$('.box').mousedown(function(ev) {
var oevent = ev || event;
  var distanceX = oevent.clientX - oevent.currentTarget.offsetLeft;
  var distanceY = oevent.clientY - oevent.currentTarget.offsetTop;

$(document).mousemove(function(ev) {
var oevent = ev || event;
$('.box').css('left', oevent.clientX - distanceX + 'px');
$('.box').css('top', oevent.clientY - distanceY + 'px');
});
$(document).mouseup(function(ev) {
$(document).unbind('mousemove');
$(document).unbind('mouseup');
});

})
posted @ 2019-04-29 16:41  简单就好zyx  阅读(238)  评论(0编辑  收藏  举报