JS 拖拽事件

 <style>
.dotted {
  width: 0px;
  height: 0px;
  background-color: none;
  border: solid 3px rgb(5, 247, 37);
  position: absolute;
  left: 0px;
  top: 0px;
  border-radius: 50%; 
}
</style>
</head>

<body>
<div class="dotted"></div>
<script>
 var dotted = document.getElementsByClassName('dotted')[0];
 var downX = 0;//判断按下鼠标时的X位置
 var downY = 0;//判断按下鼠标时的Y位置
 var on_off = false;//开关【为了先点击后移动】
 window.onmousedown = function (e) {
  on_off = true;//开,可以移动
  e = e || window.event;
  downX = e.clientX;//获取按下鼠标时的X位置
  downY = e.clientY;//获取按下鼠标时的Y位置
}
window.onmousemove = function (e) {
    e = e || window.event;
    if (on_off) {
      var moveX = e.clientX;//鼠标移动的X位置
      var moveY = e.clientY;//鼠标移动的Y位置
      var box_width = Math.abs(moveX - downX);//根据x轴位置不同求出差值设置为width
      var box_height = Math.abs(moveY - downY);//根据y轴位置不同求出差值设置为height
      var box_top = 0;
      var box_left = 0;
      //由于鼠标可能移至起点的左侧和上侧,所以取到两者的最小值
      box_left = Math.min(moveX, downX);
      box_top = Math.min(moveY, downY);
      //将数据写入样式
      dotted.style = 'top:' + box_top + 'px;left:' + box_left + 'px;width:' + box_width + 'px;height:' + box_height + 'px;'
    }
  }

window.onmouseup = function (e) {
  e = e || window.event;
  on_off = false;
}
</script>

是不是 很神奇呢?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 拖拽事件 ondragstart当拖拽元素被开始拖拽时,event:拖拽元素。[从操作系统向浏览器拖拽文件不会触发...
    蘑菇酱960903阅读 1,364评论 0 0
  • 1111班,一个神奇的班级,一个神奇到班号都如此奇异的班级。这个班级地处特殊,上不压顶,下不踏地,面门正冲校门口,...
    点兜阅读 453评论 0 2
  • 月亮失足于梢头听风在讲他的故事,天空深邃无垠。 小青环顾着打扫了一天的屋子,在这里上演了多年的酸甜苦辣被她打扫得不...
    未成年老人阅读 577评论 1 2
  • 第七十五天。 春节假期最后一次在家里晚睡晚起,起来差不多时间,今天上佛山了。 初九了,高速上塞车还是厉害,一塞车不...
    何以醉阅读 143评论 0 1