• jquery和jquery-ui拖动元素(vue2)


     彩色小方块可以任意拖动,红色箭头指向的区域可以拖动

    CDN在index.html文件中引入 

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

    1. <div id="all">
    2. <div id="userListBox">
    3. <div id="userListBoxTitle" class="move">用户列表div>
    4. <div id="userListBoxMain">
    5. <div
    6. class="userListBoxMain"
    7. v-for="item in userList"
    8. :key="item.id"
    9. >
    10. <li>{{ item.name }}li>
    11. div>
    12. div>
    13. div>
    14. <div
    15. id="main"
    16. style="
    17. position: relative;
    18. height: 600px;
    19. background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPiAgICA8ZGVmcz4gICAgICAgIDxwYXR0ZXJuIGlkPSJncmlkIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiPiAgICAgICAgICAgIDxwYXRoIGQ9Ik0gMTAgMCBMIDAgMCAwIDEwIiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGRkZGQiIHN0cm9rZS13aWR0aD0iMSIgb3BhY2l0eT0iMSIgLz4gICAgICAgIDwvcGF0dGVybj4gICAgPC9kZWZzPiAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyaWQpIiAvPjwvc3ZnPg==);
    20. "
    21. >
    22. <div class="bk" style="background: red;">1div>
    23. <div class="bk" style="background: blue; left: 60px;">2div>
    24. <div class="bk" style="background: yellow; left: 120px;">3div>
    25. <div class="bk" style="background: #000; left: 180px;">4div>
    26. <div class="bk" style="background: grey; left: 240px;">5div>
    27. div>
    28. <div class="binDiv">
    29. <div id="binDiv">拖到我上面div>
    30. div>
    31. div>
    1. userList: [
    2. {
    3. id: '1',
    4. name: '用户1',
    5. },
    6. {
    7. id: '2',
    8. name: '用户2',
    9. },
    10. {
    11. id: '3',
    12. name: '用户3',
    13. },
    14. {
    15. id: '4',
    16. name: '用户4',
    17. },
    18. {
    19. id: '5',
    20. name: '用户5',
    21. },
    22. {
    23. id: '6',
    24. name: '用户6',
    25. },
    26. {
    27. id: '8',
    28. name: '用户8',
    29. },
    30. {
    31. id: '9',
    32. name: '用户9',
    33. },
    34. {
    35. id: '10',
    36. name: '用户10',
    37. },
    38. {
    39. id: '11',
    40. name: '用户11',
    41. },
    42. {
    43. id: '12',
    44. name: '用户12',
    45. },
    46. {
    47. id: '13',
    48. name: '用户13',
    49. },
    50. {
    51. id: '14',
    52. name: '用户14',
    53. },
    54. {
    55. id: '15',
    56. name: '用户15',
    57. },
    58. {
    59. id: '16',
    60. name: '用户16',
    61. },
    62. {
    63. id: '17',
    64. name: '用户17',
    65. },
    66. ],
    1. mounted() {
    2. this.dragFun()
    3. this.userListFun()
    4. },
    1. //拖动正方块
    2. dragFun() {
    3. $('.bk')
    4. .resizable() //.resizable()是jQuery UI提供的一个方法,它可以将选定的元素变为可调整大小的元素
    5. .draggable({
    6. //.draggable()方法可以使选定的元素可拖动
    7. containment: '#main', // 限制拖动范围
    8. distance: 5, //设置移动多少像素后才开始触发拖动操作
    9. scroll: false, //拖动的时候不会触发滚动
    10. stack: '.bk', //拖动的元素被置于.bk元素组的最上层
    11. start: function (event, ui) {}, //当开始拖动元素时触发该函数
    12. drag: function (event, ui) {}, //在元素拖动过程中持续触发该函数
    13. stop: function (event, ui) {}, //当停止拖动元素时触发该函数
    14. })
    15. //使用 .bind() 方法将 click 事件绑定到选定的元素上
    16. .bind('click', function () {
    17. if ($(this).hasClass('ui-selected')) {
    18. //当前元素有 'ui-selected' 类移除该类。
    19. $(this).removeClass('ui-selected')
    20. } else {
    21. //当前元素没有 'ui-selected' 类,为元素添加该类。
    22. $(this).addClass('ui-selected')
    23. }
    24. })
    25. //jQuery UI 中的 .selectable() 方法来使 #main 元素的子元素可选择
    26. $('#main').selectable({
    27. filter: '.bk', //指定可选择项的 CSS 选择器,这里设置为 .bk,只有带有 .bk 类的子元素才能被选择
    28. distance: 30, //表示鼠标在元素上移动多少像素后才开始进行选择操作。
    29. selected: function (event, ui) {}, //选中元素后的回调函数
    30. })
    31. $('#binDiv').droppable({
    32. //使用了 jQuery UI 中的 .droppable() 方法,将 #binDiv 元素设置为可接收被拖动元素的区域
    33. drop: function (event, ui) {
    34. //在设置的元素上发生拖放操作并完成后触发的事件处理函数
    35. console.log('被放:', $(this))
    36. console.log('被拖:', ui)
    37. $(this).html('Dropped!') //将 #binDiv 元素的内容设置为字符串 'Dropped!'
    38. },
    39. })
    40. },
    1. // 拖动用户列表
    2. userListFun() {
    3. //拖动整个列表
    4. $('#userListBox').draggable({
    5. //draggable() 方法,将 #userListBox 元素设置为可拖动的元素
    6. cursor: 'move', //设置鼠标移动时的光标样式为 'move',表示该元素可拖动。
    7. handle: '#userListBoxTitle', //指定拖动操作的触发区域为 #userListBoxTitle 元素。只有在拖动该区域内部,拖动操作才会生效。
    8. containment: '#all', //限制被拖动元素的移动范围在 #all 元素内。被拖动元素不会超出 #all 元素的边界
    9. })
    10. //拖动列表中的用户
    11. $('#userListBoxMain li').draggable({
    12. //.draggable() 方法,将 #userListBoxMain li 元素设置为可拖动的元素
    13. cursor: 'move', //设置鼠标移动时的光标样式为 'move',表示该元素可拖动
    14. cursorAt: {
    15. //表示以被拖动元素的左侧距离鼠标左侧偏移 25px 的位置为鼠标偏移量,即被拖动元素将会跟随鼠标移动并保持此距离。
    16. left: 25,
    17. },
    18. helper: 'clone', //指定拖动时需要使用一个辅助元素来显示拖动效果,该辅助元素是被拖动元素的副本。
    19. containment: '#main', //限制被拖动元素的移动范围在 #main 元素内。
    20. distance: 5, //设置鼠标移动的距离超过 5px 后,才开始响应拖动事件。
    21. scroll: false, //拖动时不允许页面滚动。
    22. stack: '#userListBoxMain li', //设置可拖动元素的层级,使得当前被拖动的元素在其他元素上方。
    23. appendTo: '#main', //将拖动时的辅助元素附加到 #main 元素上。
    24. zIndex: 10000, //设置被拖动元素的 CSS 层级为 10000。
    25. start: function (event, ui) {}, //开始进行拖动操作时执行
    26. drag: function (event, ui) {}, //正在拖动元素时执行
    27. stop: function (event, ui) { //拖动操作结束时执行
    28. $(this).addClass('userstop')
    29. },
    30. })
    31. },

  • 相关阅读:
    SpringMvc(一)-初识
    【云原生Kubernetes项目部署】k8s集群+高可用负载均衡层+防火墙
    【云原生】k8s新版本与Docker和Containerd的关联关系
    设计模式-责任链模式
    springboot的开发流程
    srpingboot security demo
    模板特化--类和函数
    定个小目标之刷LeetCode热题(20)
    【SA8295P 源码分析】102 - QNX /dev/switch 节点创建 及 读写功能实现实例
    70行代码撸一个桌面自动翻译神器!
  • 原文地址:https://blog.csdn.net/weixin_58431406/article/details/133384429