|
发表于 2023-8-16 11:35:39
|
显示全部楼层
在你的代码中,你想要通过鼠标拖拽来移动一个元素。然而,你的代码中有一个错误。在 drag 函数中,你应该将 pos3 赋给 elmnt.style.left ,将 pos4 赋给 elmnt.style.top ,而不是相反。
这是修正后的代码:
- <!DOCTYPE html>
- <html>
- <style>
- #test {
- position: absolute;
- padding: 10px;
- cursor: move;
- z-index: 10;
- }
- </style>
- <body>
- <div id="test">test</div>
- <script>
- let elmnt = document.getElementById("test");
- let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
- elmnt.onmousedown = mousedown;
- function mousedown(e) {
- e = e || window.event;
- e.preventDefault();
- pos3 = e.screenX;
- pos4 = e.screenY;
- document.onmouseup = function(){
- document.onmousedown = null;
- document.onmousemove = null;
- };
- document.onmousemove = drag;
- }
- function drag(e) {
- e = e || window.event;
- e.preventDefault();
- pos1 = pos3 - e.screenX;
- pos2 = pos4 - e.screenY;
- pos3 = e.screenX;
- pos4 = e.screenY;
- elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
- elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
- }
- </script>
- </body>
- </html>
复制代码
这样,你应该能够通过鼠标拖拽来移动元素了。 |
|