当前位置:首页 > jquery

jquery 拖拽

2026-04-07 23:56:56jquery

jQuery 拖拽实现方法

jQuery 拖拽功能可以通过原生 HTML5 的拖放 API 或 jQuery UI 的拖拽组件实现。以下是两种常见方法的详细说明:

jquery 拖拽

使用 HTML5 拖放 API

HTML5 原生拖放 API 可以与 jQuery 结合使用,实现基本的拖拽功能。

jquery 拖拽

$(document).ready(function() {
  // 设置可拖拽元素
  $('.draggable').attr('draggable', 'true');

  // 拖拽开始事件
  $('.draggable').on('dragstart', function(e) {
    e.originalEvent.dataTransfer.setData('text/plain', $(this).attr('id'));
  });

  // 拖放目标区域
  $('.droppable').on('dragover', function(e) {
    e.preventDefault();
    $(this).addClass('drag-over');
  });

  // 拖放离开目标区域
  $('.droppable').on('dragleave', function() {
    $(this).removeClass('drag-over');
  });

  // 放置事件
  $('.droppable').on('drop', function(e) {
    e.preventDefault();
    $(this).removeClass('drag-over');
    var draggedId = e.originalEvent.dataTransfer.getData('text/plain');
    var draggedElement = $('#' + draggedId);
    $(this).append(draggedElement);
  });
});

使用 jQuery UI 拖拽

jQuery UI 提供了更完善的拖拽功能,需要先引入 jQuery UI 库。

$(function() {
  // 使元素可拖拽
  $(".draggable").draggable({
    revert: "invalid", // 如果没放到可放置区域则返回原位
    cursor: "move",    // 拖拽时鼠标样式
    helper: "clone"    // 拖拽时显示克隆元素
  });

  // 设置可放置区域
  $(".droppable").droppable({
    accept: ".draggable",
    drop: function(event, ui) {
      // 放置后的处理
      $(this).append(ui.draggable);
    }
  });
});

拖拽功能进阶设置

限制拖拽范围

$(".draggable").draggable({
  containment: "parent" // 限制在父元素内拖拽
});

拖拽时添加样式

$(".draggable").draggable({
  start: function() {
    $(this).addClass("dragging");
  },
  stop: function() {
    $(this).removeClass("dragging");
  }
});

拖拽排序

jQuery UI 还提供了排序功能,可以实现列表项拖拽排序。

$(".sortable").sortable({
  placeholder: "sortable-placeholder",
  update: function(event, ui) {
    // 排序更新后的回调
  }
});

兼容性注意事项

  • 移动端设备可能需要额外处理触摸事件
  • 较旧浏览器可能需要引入 polyfill 支持拖放 API
  • jQuery UI 的体积较大,如仅需拖拽功能可考虑轻量级替代方案

以上方法提供了从基础到进阶的 jQuery 拖拽实现方案,可根据具体需求选择适合的方式。

标签: 拖拽jquery
分享给朋友:

相关文章

vue实现图标拖拽

vue实现图标拖拽

Vue 实现图标拖拽 使用 HTML5 拖放 API 在 Vue 中实现图标拖拽可以利用 HTML5 的拖放 API。通过 draggable 属性标记可拖拽元素,并监听 dragstart、drag…

jquery数组

jquery数组

jQuery 数组操作 jQuery 提供了多种方法来操作数组或类数组对象(如 jQuery 对象集合)。以下是常见的数组操作方法: 遍历数组 使用 $.each() 方法可以遍历数组或对象: v…

jquery下拉

jquery下拉

jQuery 实现下拉效果的方法 使用 slideDown() 和 slideUp() 方法 通过 slideDown() 展开元素,slideUp() 收起元素,实现平滑的下拉动画效果。 $(…

在jquery

在jquery

使用 jQuery 的基本方法 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画和 Ajax 交互。以下是一些常见的使用方法。 选择元素 使用…

jquery 地址

jquery 地址

jQuery 官方地址 jQuery 的官方网站地址为:https://jquery.com/。该网站提供了 jQuery 的下载、文档、教程以及最新版本信息。 CDN 地址 如果需要通过 CDN…

jquery正则

jquery正则

jQuery 正则表达式基础 jQuery 本身不直接提供正则表达式功能,但可以通过 JavaScript 的正则表达式对象(RegExp)结合 jQuery 的方法实现字符串匹配、替换等操作。 创…