合并TinyUSB仓库
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
(async () => {
|
||||
|
||||
const uiResizer = document.getElementById('resizer');
|
||||
const uiLeftColumn = uiResizer.previousElementSibling;
|
||||
const uiRightColumn = uiResizer.nextElementSibling;
|
||||
const uiParent = uiResizer.parentElement;
|
||||
|
||||
let isResizing = false;
|
||||
let abortSignal = null;
|
||||
|
||||
function onMouseMove(e) {
|
||||
// we resize the columns by applying felx: <ratio> to the columns
|
||||
|
||||
// compute the percentage the mouse is in the parent
|
||||
const percentage = (e.clientX - uiParent.offsetLeft) / uiParent.clientWidth;
|
||||
// clamp the percentage between 0.1 and 0.9
|
||||
const clampedPercentage = Math.max(0.1, Math.min(0.9, percentage));
|
||||
// set the flex property of the columns
|
||||
uiLeftColumn.style.flex = `${clampedPercentage}`;
|
||||
uiRightColumn.style.flex = `${1 - clampedPercentage}`;
|
||||
}
|
||||
|
||||
function onMouseUp(e) {
|
||||
// restore user selection
|
||||
document.body.style.userSelect = '';
|
||||
|
||||
// remove the mousemove and mouseup events
|
||||
if (abortSignal) {
|
||||
abortSignal.abort();
|
||||
abortSignal = null;
|
||||
}
|
||||
}
|
||||
|
||||
uiResizer.addEventListener('mousedown', e => {
|
||||
e.preventDefault();
|
||||
isResizing = true;
|
||||
|
||||
// prevent text selection
|
||||
document.body.style.userSelect = 'none';
|
||||
|
||||
// register the mousemove and mouseup events
|
||||
abortSignal = new AbortController();
|
||||
document.addEventListener('mousemove', onMouseMove, { signal: abortSignal.signal });
|
||||
document.addEventListener('mouseup', onMouseUp, { signal: abortSignal.signal });
|
||||
});
|
||||
|
||||
})();
|
||||
Reference in New Issue
Block a user