狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

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

使用 JS 實現拖拽拉伸一個 div 的寬度和高度

admin
2023年5月23日 15:13 本文熱度 1209

使用 JS 實現了一個可拉伸的 div,按住右邊框,拖動鼠標可改變 div 的寬度。

1. 鼠標在瀏覽器中的坐標基本概念

2. 鼠標按住拖動改變寬度原理

  1. 鼠標按下時算出鼠標 x 坐標與元素右邊框的距離,在鼠標移動時不變:element.offsetWidth - event.offsetX

  2. 元素寬 = 鼠標距離元素左邊框距離event.offsetX + 1中算出的值

    改變高度同理。

3. 代碼實現

HTML:

<div id="container1" class="resizable"></div>

Javascript:

混用了瀏覽器原生 API 與 jQuery,因為 jQuery 的鏈式調用太好用了。

bindResize();

function bindResize()

{

const el = document.getElementById('container1');

let els = el.style, x = y = 0; el.addEventListener('mousemove', function(evt) {

if (el.offsetWidth - evt.offsetX <= 10) {

els.cursor = 'e-resize'; } else { els.cursor = 'auto'; }})

el.addEventListener('mousedown', function(evt) {

// 點擊位置與元素右邊框的距離,不變值

x = el.offsetWidth - evt.offsetX


// 在支持 setCapture 捕捉焦點, 設置事件

el.setCapture ? ( el.setCapture(), el.onmousemove = function (ev) { mouseMove(ev || event) }, el.onmouseup = mouseUp ) : ($(document).bind("mousemove", mouseMove).bind("mouseup", mouseUp))

// 阻止默認事件

evt.preventDefault();

})


// 鼠標移動事件

function mouseMove(evt) { els.width = evt.offsetX + x + 'px';

// 如果鼠標移出元素或屏幕外

if (evt.offsetX <= 0 || evt.offsetX >= document.body.clientWidth + 2) {mouseUp()}

}


// 釋放焦點,移除事件

function mouseUp() { el.releaseCapture ? (

el.releaseCapture(), el.onmousemove = el.onmouseup = null ) : ($(document).unbind("mousemove", mouseMove).unbind("mouseup", mouseUp)) } }

4. 不用 js 可以實現 div 拉伸嗎?

可以,兩個 css 屬性解決:

.resizable

{

 overflow: auto;  resize: both; }


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