js原生手写一个拖拽小功能

先上效果图

附上代码

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
  <style>
    .four {
      width: 200px;
      height: 100px;
      background-color: #00f;
      position: relative;
    }
  </style>
</head>

<body>
  <div class="four" style="top:0;left:0"></div>
  <script>
    var div = document.getElementsByTagName('div')[0];
    function drag() {
      var disX,
        disY;
      div.addEventListener('mousedown', function (e) {
        var e = e || window.event;
        disX = e.pageX - parseInt(div.style.left);
        disY = e.pageY - parseInt(div.style.top);
        document.addEventListener('mousemove', move);
        document.addEventListener('mouseup', function (e) {
          document.removeEventListener('mousemove', move);
        })
      })
      function move(e) {
        var e = e || window.event;
        div.style.left = (e.pageX - disX) + 'px';
        div.style.top = e.pageY - disY + 'px';
      }
    }
    drag()
  </script>
</body>

</html>
相关推荐
日光倾8 小时前
TypeScript 随手记 —— 1
前端·javascript·typescript
Buke..10 小时前
【APP 逆向】哔哩哔哩 sign 参数逆向(下):OLLVM 混淆还原 sign 算法
java·javascript·爬虫·python·算法
前端炒粉12 小时前
长会话虚拟滚动与渲染优化
前端·javascript·vue.js
谙忆102412 小时前
图片裁剪总是跑偏?用 object-fit、object-position 和真实像素把坐标对齐
javascript·css·图像识别
花归去12 小时前
ant的a-table更改表格的高度
前端·javascript·html
sibylyue13 小时前
基于 Vben Admin 框架的 Vue 3 前端项目配置文件及常用命令
前端·javascript·vue.js
AC赳赳老秦15 小时前
多源数据关联挖掘:OpenClaw 打通工商、招投标、专利公开数据,挖掘企业业务关联关系
java·c语言·javascript·c++·python·deepseek·openclaw
光影少年16 小时前
react navite 内存泄漏:定时器、监听事件、订阅销毁
前端·javascript·react native·react.js·前端框架
breeze jiang16 小时前
Next.js 16 App Router 实战:从 About、Blog 动态路由到全局 404
开发语言·javascript·ecmascript
zh_xuan17 小时前
个人主页左侧菜单支持分组,以及菜单显示和隐藏
前端·javascript·css