JavaScript简单拖拽效果(1)

发布时间 - 2026-01-11 01:08:59    点击率:

拖拽在前端开发中是很常见的功能,也是基本功之一,本文是不限制范围的拖拽也就是最简单的拖拽,鼠标按下对象,拖拽,松开停止!
1,onmousedown事件
2,onmousemove事件
3,onmouseup事件

因为在按下时拖动,所以onmousemove事件在down后才注册,up事件是用来解绑事件,消除事件!

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>简单拖拽</title>
  <style type="text/css">
    * {
      margin: 0;
      padding: 0;
    }
    #div1 {
      width: 100px;
      height: 100px;
      background: orange;
      position: absolute;
    }
  </style>
</head>
<body style="height: 500000px;">
  <div id="div1"></div>

  <script type="text/javascript">
    function getStyle(obj, attr) {
      if (obj.currentStyle) {
        return obj.currentStyle[attr];
      } else {
        return getComputedStyle(obj, null)[attr];
      }
    }
    var oDiv = document.getElementById('div1');
    oDiv.onmousedown = function(ev) {
      var oEvent = ev || event;
      // var disX = oEvent.clientX - oDiv.offsetLeft;
      // var disY = oEvent.clientY - oDiv.offsetTop;

      var disX = oEvent.clientX - parseInt(getStyle(oDiv, 'left'));
      var disY = oEvent.clientY - parseInt(getStyle(oDiv, 'top'));

      document.onmousemove = function(ev) {
        var oEvent = ev || event;
        oDiv.style.left = oEvent.clientX - disX + 'px';
        oDiv.style.top = oEvent.clientY - disY + 'px';
      };
      document.onmouseup = function() {
        document.onmousemove = null;
        document.onmouseup = null;
      };
      return false;
    };
  </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js  # 拖拽  # JQuery Dialog(JS 模态窗口  # 可拖拽的DIV)  # js实现拖拽效果  # 百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8  # Firefox  # Chrome  # Javascript拖拽系列文章2之offsetLeft、offsetTop、offsetWidth  # 关于js拖拽上传 [一个拖拽上传修改头像的流程]  # javascript支持firefox  # ie7页面布局拖拽效果代码  # js完美的div拖拽实例代码  # 使用js实现的简单拖拽效果  # javascript拖拽上传类库DropzoneJS使用方法  # div拖拽插件——JQ.MoveBox.js(自制JQ插件)  # 按下  # 鼠标  # 拖动  # 后才  # 最简单  # 大家多多  # 是用来  # meta  # charset  # utf  # DOCTYPE  # html  # gt  # head  # margin  # css  # padding  # style  # title 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  如何撰写建站申请书?关键要点有哪些?  如何为不同团队 ID 动态生成多个非值班状态按钮  如何快速搭建个人网站并优化SEO?  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  如何为不同团队 ID 动态生成多个“认领值班”按钮  大连 网站制作,大连天途有线官网?  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  如何用JavaScript实现文本编辑器_光标和选区怎么处理  音响网站制作视频教程,隆霸音响官方网站?  免费网站制作appp,免费制作app哪个平台好?  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  利用vue写todolist单页应用  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Windows Hello人脸识别突然无法使用  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  千库网官网入口推荐 千库网设计创意平台入口  Laravel集合Collection怎么用_Laravel集合常用函数详解  教学论文网站制作软件有哪些,写论文用什么软件 ?  Android自定义listview布局实现上拉加载下拉刷新功能  如何用腾讯建站主机快速创建免费网站?  微信小程序 canvas开发实例及注意事项  如何利用DOS批处理实现定时关机操作详解  佛山企业网站制作公司有哪些,沟通100网上服务官网?  如何快速搭建虚拟主机网站?新手必看指南  大同网页,大同瑞慈医院官网?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何快速启动建站代理加盟业务?  如何快速生成高效建站系统源代码?  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  Laravel如何处理CORS跨域请求?(配置示例)  Laravel如何保护应用免受CSRF攻击?(原理和示例)  如何快速建站并高效导出源代码?  MySQL查询结果复制到新表的方法(更新、插入)