当前位置:首页 > jquery

jquery拖拽事件

2026-03-17 00:21:25jquery

jQuery 拖拽事件实现方法

jQuery 本身不直接提供拖拽功能,但可以通过结合原生 HTML5 的拖拽 API 或使用 jQuery UI 库来实现。以下是两种常见实现方式:

使用 jQuery UI 实现拖拽

jQuery UI 提供了完善的拖拽功能,需要先引入相关库文件:

<!-- 引入 jQuery 和 jQuery UI -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

基础拖拽实现代码:

jquery拖拽事件

$(function() {
  $("#draggable").draggable({
    cursor: "move",
    containment: "parent",
    revert: "invalid"
  });
});

使用 HTML5 原生拖拽 API

如果不希望引入 jQuery UI,可以使用 HTML5 的原生拖拽 API 配合 jQuery:

$(document).ready(function() {
  var $draggable = $('.draggable');

  $draggable.attr('draggable', 'true');

  $draggable.on('dragstart', function(e) {
    e.originalEvent.dataTransfer.setData('text/plain', $(this).attr('id'));
  });

  $('.dropzone').on('dragover', function(e) {
    e.preventDefault();
    $(this).addClass('dragover');
  });

  $('.dropzone').on('dragleave', function() {
    $(this).removeClass('dragover');
  });

  $('.dropzone').on('drop', function(e) {
    e.preventDefault();
    $(this).removeClass('dragover');
    var id = e.originalEvent.dataTransfer.getData('text/plain');
    $('#' + id).appendTo(this);
  });
});

拖拽事件回调函数

jQuery UI 的 draggable 组件提供了多个事件回调:

jquery拖拽事件

$("#element").draggable({
  start: function(event, ui) {
    // 拖拽开始时触发
  },
  drag: function(event, ui) {
    // 拖拽过程中持续触发
  },
  stop: function(event, ui) {
    // 拖拽结束时触发
  }
});

限制拖拽范围

可以通过选项限制拖拽范围:

$("#element").draggable({
  containment: "parent",  // 限制在父元素内
  axis: "x",              // 只能水平拖拽
  grid: [50, 50]          // 按网格拖拽
});

拖拽辅助元素

可以设置拖拽时显示的辅助元素:

$("#element").draggable({
  helper: "clone",        // 克隆元素作为拖拽辅助
  opacity: 0.7            // 设置辅助元素透明度
});

以上方法可以根据具体需求选择使用,jQuery UI 的方案功能更全面,而原生 API 的方案则更轻量。

标签: 拖拽事件
分享给朋友:

相关文章

vue实现拖拽改变尺寸

vue实现拖拽改变尺寸

Vue 实现拖拽改变尺寸的方法 使用原生 HTML5 拖拽 API 通过监听 mousedown、mousemove 和 mouseup 事件实现拖拽改变尺寸。创建一个可拖拽的边界元素,调整目标元素的…

前端实现拖拽功能vue

前端实现拖拽功能vue

使用 HTML5 拖放 API 在 Vue 中可以通过 HTML5 的原生拖放 API 实现拖拽功能。需要监听 dragstart、dragover 和 drop 事件。 <template&…

vue实现拖拽连接

vue实现拖拽连接

Vue 实现拖拽连接功能 在 Vue 中实现拖拽连接功能通常涉及使用 HTML5 的拖放 API 或第三方库(如 vuedraggable)。以下是两种常见实现方式: 使用 HTML5 拖放 API…

vue实现拖拽div

vue实现拖拽div

实现拖拽功能的基本思路 在Vue中实现拖拽功能可以通过HTML5的拖拽API或第三方库如vuedraggable来完成。以下是两种常见方法的详细说明: 使用HTML5拖拽API HTML5提供了原生…

react如何绑定事件

react如何绑定事件

React 事件绑定方法 在 React 中绑定事件有多种方式,以下是常见的几种方法: 使用 onClick 或其他事件属性直接绑定 <button onClick={() => co…

vue实现拖拽放置

vue实现拖拽放置

Vue 实现拖拽放置功能 拖拽放置功能可以通过 Vue 的指令或第三方库实现。以下是两种常见的方法: 使用 HTML5 原生拖拽 API HTML5 提供了原生的拖拽 API,可以通过 dragga…