Home  >  Article  >  Web Front-end  >  HTML, CSS, and jQuery: A technical guide to implementing drag-and-drop sorting

HTML, CSS, and jQuery: A technical guide to implementing drag-and-drop sorting

PHPz
PHPzOriginal
2023-10-24 08:12:26758browse

HTML, CSS, and jQuery: A technical guide to implementing drag-and-drop sorting

HTML, CSS and jQuery: Technical Guide to Implementing Drag-and-Drop Sorting

In modern web design, drag-and-drop sorting is a very common feature. It allows users to sort by dragging elements, and provides a good user experience during real-time updates. This article will introduce you how to use HTML, CSS and jQuery to implement a simple drag-and-drop sorting function.

Before we start, we first need to prepare some basic HTML structures and CSS styles, which will provide a foundation for our subsequent drag and drop sorting.

HTML structure:

<ul id="sortable">
  <li>项目 1</li>
  <li>项目 2</li>
  <li>项目 3</li>
  <li>项目 4</li>
  <li>项目 5</li>
</ul>

CSS style:

#sortable {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

#sortable li {
  cursor: move;
  padding: 10px;
  margin-bottom: 5px;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
}

Next, we need to introduce the jQuery library and some jQuery UI plug-ins, which will provide us with the ability to implement drag and drop sorting necessary support. Insert the following code into the tag of the web page:

<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

Now that we have prepared all the necessary code, libraries and plug-ins, we can start to implement drag and drop sorting .

First, we need to use jQuery UI's sortable() method to make the list drag-and-drop sortable. Insert the following code in the JavaScript code:

$(document).ready(function() {
  $("#sortable").sortable();
});

Next, we need to add a callback function for the event after the sorting is completed, so that we can obtain the updated sorting results when the list sorting changes. Modify the JavaScript code as follows:

$(document).ready(function() {
  $("#sortable").sortable({
    update: function(event, ui) {
      var sortedIDs = $(this).sortable("toArray");
      console.log(sortedIDs);
    }
  });
});

In this code, we use jQuery UI’s toArray() method to get the ID of the sorted list item and print it to the console . You can further process the sorting results according to actual needs, such as saving the sorting results or updating the display of the interface.

Finally, in order to increase interactivity, we can add some animation effects when sorting. Modify the JavaScript code as follows:

$(document).ready(function() {
  $("#sortable").sortable({
    update: function(event, ui) {
      var sortedIDs = $(this).sortable("toArray");
      console.log(sortedIDs);
    }
  }).disableSelection();
});

In this code, we use jQuery UI's disableSelection() method to prevent the text of the list item from being selected.

So far, we have completed the implementation of a simple drag-and-drop sorting function. You can adjust the style and expand functions according to your own needs, such as adding deletion, editing and other functions.

Summary:
This article provides an example of using HTML, CSS and jQuery to implement drag-and-drop sorting. By using jQuery UI's sortable() method, we can easily implement drag-and-drop sorting of the list, and after the sorting is completed, we can easily obtain the sorted results. I hope this article will help you understand the implementation process of drag and drop sorting.

Code example: https://codepen.io/pen/?template=WNRZebr

The above is the detailed content of HTML, CSS, and jQuery: A technical guide to implementing drag-and-drop sorting. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn