LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

JS 實現 div 自由拖拽

admin
2025年6月28日 23:45 本文熱度 246

實現鼠標可以自由拖拽頁面中的元素(比如div,圖片等),首先為要拖動的元素設置 css 為絕對定位(或者使用transform,但使用絕對定位更常見),然后需要用到三個事件:mousedownmousemove 和 mouseup

實現思路:

a) 頁面中添加一個div,作為容器,容易的class 設置為 container,并將其設置為相對定位;

b) 在 container 中添加一個div,作為拖拽的目標,并將其設置為絕對定位;

c) 給推拽目標添加 mousedown 事件,mousedown 事件記錄鼠標按下的坐標;

d) mousedown 函數中,注冊 mousemove 和 mouseup 事件;

e) mousemove 事件中,記錄鼠標坐標,并與mousedown事件的起始坐標計算,得出移動的距離,根據這個距離重新給拖拽目標設置定位;

f) mouseup 事件中取消 mousemove、mouseup 事件。

具體實現

HTML

<div class="container">    <div class="el"></div></div>

CSS

.container {position: relative;        width100vw;        height100vh; } el {position: absolute;        top0;        left0;        width100px;        height100px;        background: red;}

JS

var el = document.querySelector('.el');el.addEventListener('mousedown', mouseDown);var startX, startY, offsetX, offsetY;function mouseDown(e){    startX = e.clientX;    startY = e.clientY;    offsetX = el.offsetLeft//記錄原始位置    offsetY = el.offsetTop;    document.addEventListener('mousemove', mouseMove);    document.addEventListener('mouseup', mouseUp);}function mouseMove(e){    var x = e.clientX - startX;    var y = e.clientY - startY;    el.style.left = offsetX + x + 'px';    el.style.top = offsetY + y + 'px';}function mouseUp(e){    document.removeEventListener('mousemove', mouseMove);    document.removeEventListener('mouseup', mouseUp);}

?

閱讀原文:原文鏈接


該文章在 2025/7/1 23:26:34 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日韩精品区一区二免费 | 午夜视频在线观看亚洲天堂 | 亚洲中文字幕丝祙制服在线 | 伊久线香蕉观新在线视频 | 亚洲v欧美v日韩v国产 | 在线观看国产小视频网站 |