如何使 div 的整个边可调整大小?

roh*_*ikr 4 html javascript css

我目前知道调整大小手柄出现在带有 css 属性的 div 的右下角:

resizable: horizontal;

我不确定这是否是浏览器独有的,但在 Firefox 中,手柄仅出现在右下角,并且仅在我们拖动该特定部分时才起作用。如果您看到任何网络应用程序,您可能会发现这些应用程序通过使整个侧面(例如:右侧)可拖动来实现相同的效果,并且即使它不在手柄上也没关系。

总而言之,我想要实现的目标:

使用 vanilla html/css 使 div 的整个侧面可调整大小。

对于当前的情况,我无法使用 jQuery,因为这是一个 React 应用程序。想知道这是否可以仅通过 html/css 而不是依赖 javascript,如果不能,我们如何在普通 javascript 中实现这一点。

Rod*_*911 6

像这样的东西会起作用吗?
https://codepen.io/rod911/details/wvzPjEV

resize.addEventListener("mousedown", function (e) {
   drag = true;
   moveX = e.x;
});

container.addEventListener("mousemove", function (e) {
    moveX = e.x;
       if (drag)
           left.style.width = moveX;
});
Run Code Online (Sandbox Code Playgroud)

需要使用js来捕获拖动事件。

  • 它也适用于 Vue 3,其中包括代码笔 `<div class="container" @mousemove="containerResizeEventMM" @mouseup="containerResizeEventMU">` 和 `<div class="left" ref="left" 中的更新>`,`<div class="resize" ref="resize" @mousedown.left.prevent="MiddleResizeEventMD">` 和 `let REACT=reactive({ Drag: false, moveX: undefined})` 和 `onMounted( () =>{ REACT.moveX = left.value.getBoundingClientRect().width + resize.value.getBoundingClientRect().width / 2; });` 和 `const containerResizeEventMM= (e) =>{ REACT.moveX =前任; if (REACT.drag) { left.value.style.width =`etc`};` (2认同)