只能在方块内拖拽的案例

Posted shangjun6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了只能在方块内拖拽的案例相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html>
  <head>
  <meta charset="UTF-8">
  <title></title>
<style>

  #aa{
    width:500px;
    height:500px;
    border:red 1px solid;
    margin:100px auto;
    position:relative;
    /*padding:2px;*/
    }
  #dd{
    width:100px;
    height:100px;
    background:green;
    /*margin:2px;*/
    position:absolute;
  }
  </style>
</head>
<body>
  <div id="aa">
    <div id="dd"></div>
  </div>
</body>
</html>
<script>
  var $=function(id){
  return document.getElementById(id)
  }
  var aa=$("aa");
  var dd=$("dd");
  dd.onmousedown=function(ev){
    var ev=ev||window.event;
    var left=aa.offsetLeft
    var top=aa.offsetTop
    var x=ev.clientX-left-dd.offsetLeft;
    var y=ev.clientY-top-dd.offsetTop;
    document.onmousemove=function(ev){
      var ev=ev||window.event;

      dd.style.left=ev.clientX-left-x+"px";
      dd.style.top=ev.clientY-top-y+"px"
    if(ev.clientX-left-x<=0){
      dd.style.left=0+"px";
    }
    if(ev.clientY-top-y<=0){
      dd.style.top=0+"px";
    }

    if(ev.clientX-left-x>=aa.offsetWidth-dd.offsetWidth){
      dd.style.left=aa.offsetWidth-dd.offsetWidth+"px";
    }
    if(ev.clientY-top-y>=aa.offsetHeight-dd.offsetHeight){
      dd.style.top=aa.offsetHeight-dd.offsetHeight+"px";
    }



  }
  return false;
  }
  document.onmouseup=function(){
  document.onmousemove=null;
  }
</script>






































































以上是关于只能在方块内拖拽的案例的主要内容,如果未能解决你的问题,请参考以下文章

AI计算机视觉进阶项目——手势虚拟拖拽项目实战

openCV实践项目:拖拽虚拟方块

WPF效果第一百九十七篇之Path范围内拖拽

jquery选择多个层一起拖拽,比如页面中有10个方块(div),任意选择多个,可以实现一起拖动

JavaScript动画-碰撞检测

js实现可视化区域内拖拽