怎样在Vue中实现拖拽功能?

打印 上一主题 下一主题

主题 560|帖子 560|积分 1680

Vue.js是一款流行的JavaScript框架,用于构建用户界面。此中一个常见的需求是在Vue中实现拖拽功能,让用户可以通过拖拽元素来进行交互。今天,我们就来学习怎样在Vue中实现这一功能。
起首,我们需要明白拖拽功能的根本原理:监听鼠标变乱、实时更新拖拽元素的位置,末了在合适的时机制止拖拽并更新元素位置。在Vue中,我们可以通过绑定相关变乱来实现这一功能。


效果展示


 代码展示

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4.     <title>拖放示例-文本</title>
  5. </head>
  6. <style>
  7. .src {
  8.     display: flex;
  9. }
  10. .dropabled {
  11.     flex: 1;
  12. }
  13. .txt {
  14.     color: green;
  15. }
  16. .img {
  17.     width: 100px;
  18.     height: 100px;
  19.     border: 1px solid gray;
  20. }
  21. .target {
  22.     width: 200px;
  23.     height: 200px;
  24.     line-height: 200px;
  25.     text-align: center;
  26.     border: 1px solid gray;
  27.     color: red;
  28. }
  29. </style>
  30. <body>
  31.     <div class="src">
  32.         <div class="dragabled">
  33.             <div class="txt" id="txt">
  34.                 所有的图片都可拖拽。
  35.                 <p draggable="true">
  36.                     <img class="img" id="tupian1" src="1670483208231593.jpg" alt="图片1" />
  37.                     <img class="img" id="tupian2" src="R-C.jfif" alt="图片2" />
  38.                     </p>  
  39.             </div>
  40.          
  41.          
  42.         </div>
  43.         <div id='target' class="dropabled target">拖到这</div>
  44.     </div>
  45.     <script>
  46.         var dragSrc = document.getElementById('txt')
  47.         var target = document.getElementById('target')
  48.         dragSrc.ondragstart = handle_start
  49.         dragSrc.ondrag = handle_drag
  50.         dragSrc.ondragend = handle_end
  51.         function handle_start(e) {
  52.           console.log('拖拽1')
  53.         }
  54.       function handle_drag() {
  55.             console.log('拖拽2')
  56.         }
  57.       function handle_end() {
  58.         console.log('拖拽2')
  59.         console.log('拖拽2')
  60.     }
  61.         target.ondragenter = handle_enter
  62.         target.ondragover = handle_over
  63.         target.ondragleave = handle_leave
  64.         target.ondrop = handle_drop
  65.         function handle_enter(e) {
  66.             console.log('拖拽2')
  67.             // 阻止浏览器默认行为
  68.             e.preventDefault()
  69.         }
  70.         function handle_over(e) {
  71.             console.log('拖拽2')
  72.             // 阻止浏览器默认行为
  73.             e.preventDefault()
  74.         }
  75.         function handle_leave(e) {
  76.             console.log('拖拽2')
  77.             // 阻止浏览器默认行为
  78.             // e.preventDefault()
  79.         }
  80.         function handle_drop(e) {
  81.             console.log('拖拽')
  82.             var t = Date.now()
  83.             target.innerHTML = ''
  84.             target.append(t + '-拖拽')
  85.             e.preventDefault()
  86.         }
  87.     </script>
  88. </body>
  89. </html>
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表