EasyUI中拖动draggable的使用

忘是亡心i 2023-10-18 19:22 194阅读 0赞

场景

EasyUI环境搭建与入门基础语法:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/90760947

效果

![Image 1][]2019060421370146.gif

实现

在webapp下新建pages目录,在pages目录下新建draggable目录,并在其下新建basic.html

通过class属性实现

  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/default/easyui.css">
  7. <link rel="stylesheet" type="text/css" href="/easyui/themes/icon.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. <div class="easyui-draggable" style="width:300px; height:300px; border:1px solid #ccc">
  13. 可拖拽
  14. </div>
  15. </body>
  16. </html>

通过js实现

  1. <div id="drag" style="width:300px; height:300px; border:1px solid #ccc">
  2. 通过js实现可拖拽
  3. </div>
  4. <script type="text/javascript">
  5. $(function () {
  6. $("#drag").draggable();
  7. })
  8. </script>

局部区域拖动

实现拖动局部才能拖动,比如标题。

通过handle属性实现,其中属性值为要局部拖动的选择器。

  1. <div id="dragTitle" class="easyui-draggable" style="width:300px; height:300px; border:1px solid #ccc" handle="#title">
  2. <div id="title" style="background-color: #CC2222">标题拖动</div>
  3. </div>

效果

![Image 1][]20190604213735504.gif

js初始化拖动代理

新建proxy.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>拖动代理</title><link rel="stylesheet" type="text/css" href="/easyui/themes/default/easyui.css">
  6. <link rel="stylesheet" type="text/css" href="/easyui/themes/icon.css">
  7. <script type="text/javascript" src="/easyui/jquery.min.js"></script>
  8. <script type="text/javascript" src="/easyui/jquery.easyui.min.js"></script>
  9. </head>
  10. <body>
  11. <div id="dragProxy" style="width:300px; height:300px; border:1px solid #ccc">
  12. js初始化拖动代理
  13. </div>
  14. <script type="text/javascript">
  15. $(function () {
  16. $("#dragProxy").draggable({
  17. proxy:"clone"
  18. });
  19. })
  20. </script>
  21. </body>
  22. </html>

效果

![Image 1][]20190604213749192.gif

自定义拖动代理

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>拖动代理</title><link rel="stylesheet" type="text/css" href="/easyui/themes/default/easyui.css">
  6. <link rel="stylesheet" type="text/css" href="/easyui/themes/icon.css">
  7. <script type="text/javascript" src="/easyui/jquery.min.js"></script>
  8. <script type="text/javascript" src="/easyui/jquery.easyui.min.js"></script>
  9. </head>
  10. <body>
  11. <div id="dragProxy" style="width:300px; height:300px; border:1px solid #ccc">
  12. js初始化拖动代理
  13. </div>
  14. <script type="text/javascript">
  15. $(function () {
  16. $("#dragProxy").draggable({
  17. proxy:function(source){
  18. var p =$("<div style='width:300px; height:300px; border:1px solid red'>");
  19. p.appendTo("body");
  20. return p;
  21. }
  22. });
  23. })
  24. </script>
  25. </body>
  26. </html>

效果

![Image 1][]20190604213801537.gif

限制区域拖动

新建container.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. <script type="text/javascript" src="/easyui/jquery.min.js"></script>
  8. <script type="text/javascript" src="/easyui/jquery.easyui.min.js"></script>
  9. </head>
  10. <body>
  11. <div style="width:300px; height:300px; border:1px solid #ccc" >
  12. <div id="container" style="width:100px; height:100px;background-color: #CC2222"></div>
  13. </div>
  14. <script type="text/javascript">
  15. $(function () {
  16. $("#container").draggable({
  17. //onDrag为拖动事件
  18. onDrag:function (e) {
  19. var d = e.data;
  20. //如果拖动到最左边
  21. if(d.left<d.parent.offsetLeft){
  22. d.left=d.parent.offsetLeft;
  23. }
  24. //如果拖动到最上边
  25. if(d.top<d.parent.offsetTop){
  26. d.top=d.parent.offsetTop;
  27. }
  28. if(d.left+$(d.target).outerWidth()>$(d.parent).outerWidth()+d.parent.offsetLeft){
  29. d.left=$(d.parent).outerWidth()-$(d.target).outerWidth()+d.parent.offsetLeft;
  30. }
  31. if(d.top+$(d.target).outerHeight()>$(d.parent).outerHeight()+d.parent.offsetTop){
  32. d.top=$(d.parent).outerHeight()-$(d.target).outerHeight()+d.parent.offsetTop;
  33. }
  34. }
  35. });
  36. })
  37. </script>
  38. </body>
  39. </html>

效果

![Image 1][]20190604213814842.gif

限制范围拖动

[Image 1]:

发表评论

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

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

相关阅读