提示信息

html div可以拖动,如何写

兔哥 已关注

要使HTML的div元素可拖动,你可以使用原生的JavaScript进行操作。以下是一个简单的示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <style>
  5. .draggable {
  6. width: 100px;
  7. height: 100px;
  8. background-color: red;
  9. position: absolute;
  10. cursor: move;
  11. }
  12. </style>
  13. <div class="draggable" id="mydiv">
  14. </div>
  15. <script>
  16. // Make the DIV element draggable:
  17. dragElement(document.getElementById("mydiv"));
  18. function dragElement(elmnt) {
  19. var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
  20. elmnt.onmousedown = dragMouseDown;
  21. function dragMouseDown(e) {
  22. e = e || window.event;
  23. e.preventDefault();
  24. // get the mouse cursor position at startup:
  25. pos3 = e.clientX;
  26. pos4 = e.clientY;
  27. document.onmouseup = closeDragElement;
  28. // call a function whenever the cursor moves:
  29. document.onmousemove = elementDrag;
  30. }
  31. function elementDrag(e) {
  32. e = e || window.event;
  33. e.preventDefault();
  34. // calculate the new cursor position:
  35. pos1 = pos3 - e.clientX;
  36. pos2 = pos4 - e.clientY;
  37. pos3 = e.clientX;
  38. pos4 = e.clientY;
  39. // set the element's new position:
  40. elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
  41. elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
  42. }
  43. function closeDragElement() {
  44. // stop moving when mouse button is released:
  45. document.onmouseup = null;
  46. document.onmousemove = null;
  47. }
  48. }
  49. </script>
  50. </body>
  51. </html>

这个示例中的div元素可以被用户拖动。当鼠标在元素上按下时,元素开始移动。当鼠标释放时,元素停止移动。

然而,在React中你或许希望使用更现代、更React风格的方法。你可以查看react-draggable库,这是一个专门为React应用提供拖拽功能的库。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
兔哥 关注 已关注

最近一次登录:2024-04-29 22:07:45   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图