当前位置:首页 > jquery

jquery 拖拽

2026-04-07 23:56:56jquery

jQuery 拖拽实现方法

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

使用 HTML5 拖放 API

HTML5 原生拖放 API 可以与 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 还提供了排序功能,可以实现列表项拖拽排序。

jquery 拖拽

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

兼容性注意事项

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

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

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

相关文章

vue实现拖拽计算器

vue实现拖拽计算器

Vue 拖拽计算器实现方案 核心功能分析 可拖拽组件:计算器整体或按钮需要支持拖拽 2.计算逻辑:实现基本四则运算功能 布局系统:支持动态调整计算器位置 基础实现步骤 安装依赖 需要vue-dragg…

使用jquery

使用jquery

引入jQuery库 在HTML文件中通过<script>标签引入jQuery库。可以从CDN加载,例如: <script src="https://code.jquery.com/…

jquery 选中

jquery 选中

jQuery 选中元素的方法 jQuery 提供了多种方式来选中 DOM 元素,以下是一些常用的方法: 通过 ID 选中元素 使用 # 符号加上元素的 ID 来选中特定元素: $('#elemen…

jquery 特效

jquery 特效

jQuery 特效实现方法 jQuery 提供了丰富的特效方法,可以轻松实现动画、渐变、滑动等效果。以下是一些常见的 jQuery 特效实现方式: 淡入淡出效果 使用 fadeIn() 和 fade…

jquery 高度

jquery 高度

jQuery 获取和设置元素高度的方法 使用 jQuery 可以方便地获取或设置元素的高度。以下是几种常用的方法: 获取元素高度 使用 height() 方法可以获取匹配元素中第一个元素的计算高度(…

jquery 分页

jquery 分页

实现 jQuery 分页的方法 客户端分页实现 使用 jQuery 实现客户端分页的核心思路是通过 JavaScript 控制数据的显示与隐藏。假设有一个包含数据的 HTML 列表或表格: // 分…