jQuery UI 调整大小,同时保持相同的整体宽度

标签 jquery html css jquery-ui resize

我有两个容器通过 position: absolute 水平放置。我试图在中间制作一个“调整大小栏”,这样拖动它会增加一个元素的大小,同时减小另一个元素的大小(因此保持整体宽度相同)。

<div class="container left"></div>
<div id="resizeBar"></div>
<div class="container right"></div>  

enter image description here

然后我像这样初始化它们:

function initUI () {
    $('.container').resizable({handles: 'e,w'});
    $('#resizeBar').draggable({axis: 'x'});
}

我希望在拖动调整大小栏时,左侧容器的 E handle 和右侧容器的 W handle “跟随”调整大小栏。 jQuery UI 是否有内置机制来执行此操作?如果没有,最好的方法是什么?

最佳答案

我会首先考虑使用一些 CSS 来简化思考,您只需调整一个元素的 width,另一个元素就会随之调整:

这里是考虑 mousemove 事件的简化示例:

$('#resizeBar,.container').on('mousemove',function(e) {
  $('.left').width(e.pageX - 20);
})
body {
  display:flex;
  height:200px;
  color:#fff;
}
body > .container.right {
  background:#000;
  flex:1;
}
body > .container.left {
  background:#000;
  width:50%;
} 
#resizeBar {
  width:10px;
  background:red;
  margin:0 5px;
  cursor:pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container left">left</div>
<div id="resizeBar"></div>
<div class="container right">right</div>

关于jQuery UI 调整大小,同时保持相同的整体宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50722853/

相关文章:

html - 在网页中查找特定段落

html - 全宽背景 slider Wordpress

javascript - jquery 在动画的开始和结束时做一些事情

javascript - 如何从 jQuery 包装器访问原始元素

php - jquery checkall 复选框加重置

javascript - 为什么它打印最后一个元素

javascript - svg图像缩放、平移和编辑

javascript - 不在 View 中时绝对固定在 View 中

javascript - 无法显示 JavaScript 弹出窗口

CSS3 不是最后一个 child 的选择器