EasyUI中放置Droppable的使用以及实现拖拽排序

偏执的太偏执、 2023-10-18 19:26 170阅读 0赞

场景

效果

![Image 1][]20190605202902570.gif

实现

webapp下新建droppable文件夹,在其下新建basic.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>可放置</title>
  6. <link rel="stylesheet" type="text/css" href="/easyui/themes/icon.css">
  7. <link rel="stylesheet" type="text/css" href="/easyui/themes/default/easyui.css">
  8. <script type="text/javascript" src="/easyui/jquery.min.js"></script>
  9. <script type="text/javascript" src="/easyui/jquery.easyui.min.js"></script>
  10. </head>
  11. <body>
  12. <style type="text/css">
  13. .drags{
  14. width:50px;
  15. hejght:50px;
  16. margin:5px;
  17. border:1px solid #ccc;
  18. }
  19. .container, #drop{
  20. width:300px;
  21. height:300px;
  22. border:1px solid #ccc;
  23. float:left;
  24. margin:5px;
  25. }
  26. </style>
  27. <!--可拖拽元素-->
  28. <div class="container">
  29. <div class="drags" id="drag1">drag1</div>
  30. <div class="drags" id="drag2">drag2</div>
  31. <div class="drags" id="drag3">drag3</div>
  32. </div>
  33. <!--放置的目的容器-->
  34. <div id="drop">
  35. </div>
  36. <script type="text/javascript">
  37. $(".drags").draggable({
  38. //拖拽时产生克隆对象
  39. proxy:"clone",
  40. //松开后返回原地
  41. revert:true
  42. });
  43. //设置为可放置
  44. $("#drop").droppable({
  45. //设置可接受的
  46. accept:"#drag1,#drag2",
  47. onDragEnter:function (e,source) {
  48. //变成小手
  49. $(source).draggable("options").cursor="pointer";
  50. $(source).draggable("proxy").css("border","1px solid red");
  51. },
  52. onDragLeave:function (e,source) {
  53. //变成不可放置
  54. $(source).draggable("options").cursor="no-drop";
  55. $(source).draggable("proxy").css("border","1px solid #ccc");
  56. },
  57. onDrop:function (e,source) {
  58. $(this).append(source);
  59. }
  60. })
  61. </script>
  62. </body>
  63. </html>

拖拽排序实现

效果

![Image 1][]2019060520292766.gif

新建sort.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>拖动排序</title>
  6. <link rel="stylesheet" type="text/css" href="/easyui/themes/icon.css">
  7. <link rel="stylesheet" type="text/css" href="/easyui/themes/default/easyui.css">
  8. <script type="text/javascript" src="/easyui/jquery.min.js"></script>
  9. <script type="text/javascript" src="/easyui/jquery.easyui.min.js"></script>
  10. </head>
  11. <body>
  12. <ul style="margin:0;padding:0;margin-left:10px;">
  13. <li class="drag-item">Drag 1</li>
  14. <li class="drag-item">Drag 2</li>
  15. <li class="drag-item">Drag 3</li>
  16. <li class="drag-item">Drag 4</li>
  17. <li class="drag-item">Drag 5</li>
  18. <li class="drag-item">Drag 6</li>
  19. </ul>
  20. <style type="text/css">
  21. .drag-item{
  22. list-style-type:none;
  23. display:block;
  24. padding:5px;
  25. border:1px solid #ccc;
  26. margin:2px;
  27. width:300px;
  28. background: #fafafa;
  29. }
  30. .indicator{
  31. position: absolute;
  32. font-size:9px;
  33. width:10px;
  34. height:10px;
  35. display:none;
  36. color:red;
  37. }
  38. </style>
  39. <script type="text/javascript">
  40. //构造箭头对象,即两个>
  41. var indicator=$("<div class='indicator'>>></div>").appendTo("body");
  42. $(function () {
  43. //设置可拖拽并设置松开时返回原位置
  44. $(".drag-item").draggable({
  45. revert:true
  46. }).droppable({//设置可放置
  47. //拖拽时显示箭头
  48. onDragOver:function (e,source) {
  49. indicator.css({
  50. display:"block",
  51. //当前元素举例左边的距离-10
  52. left:$(this).offset().left-10,
  53. //当前元素距离顶部的举例+当前元素的高度-5
  54. top:$(this).offset().top+$(this).outerHeight()-5
  55. });
  56. },
  57. //设置拖拽离开时箭头消息
  58. onDragLeave:function (e,source) {
  59. indicator.hide();
  60. },
  61. //放下时将拖拽的元素放在当前元素之后并隐藏箭头
  62. onDrop:function (e,source) {
  63. $(source).insertAfter(this);
  64. indicator.hide();
  65. }
  66. })
  67. })
  68. </script>
  69. </body>
  70. </html>

[Image 1]:

发表评论

表情:
评论列表 (有 0 条评论,170人围观)

还没有评论,来说两句吧...

相关阅读