所以我把这两个div分开了.可以使用jQuery UI调整两个div的大小.
在调整div的大小时,我抓住宽度使其成为一个百分比并将其输出到相应的输入,但发生了一些奇怪的事情.
HTML:
<div id="parent">
<div id="div1"> My Data1
<input type="text" class="div1">
</div>
<div id="div2"> My Data2
<input type="text" class="div2">
</div>
</div>
Javascript:
$("#div1").resizable();
$('#div1').resize(function(){
$('#div2').width($("#parent").width()-$("#div1").width());
});
$(window).resize(function(){
var div1width = $(".div1").width() / $('.div1').parent().width() * 100;
// Paste percentage into the inputs
$('.div1').val(div1width);
var div2width = $(".div2").width() / $('.div2').parent().width() * 100;
// Paste percentage into the inputs
$('.div2').val(div2width);
});
CSS:
#parent{
position:absolute;
height:100%;
margin:0;
padding:0;
width:100%;
}
#div1{
position:relative;
float:left;
height:100%;
width:50%;
background-color:#A2A;
}
#div2{
position:relative;
float:left;
height:100%;
width:50%;
background-color:#BBB;
}
.ui-resizable-e {
cursor: e-resize;
width: 7px;
right: -5px;
top: 0;
height: 100%;
background: black;
}
小提琴:https://jsfiddle.net/uvcxfmfy/1/
会发生的事情是,当我使div1变小时,宽度百分比甚至会一直上升超过800%.当我把它做得更宽时,宽度百分比停止在20%.所以有些不对劲但我无法找到它.
我想要实现的目标.
在页面加载时,两个div应该有50%的宽度.当我使div1变小时,它应该一直变为0%,当我把它变大时它应该变为100%.
这意味着如果div1设置为25%,则div2将具有75%
当div1设置为58%时,div2为42%.
谢谢大家的帮助.
最佳答案 我希望你觉得这对你有帮助.
您应该使用此数学来获得百分比:
Math.round(( docWidth - elemWidth ) / docWidth * 100)
我只是订购你的代码并更改计算线,看看这个例子:
$("#div1").resizable();
$('#div1').resize(function(){
$('#div2').width($("#parent").width()-$("#div1").width());
});
$(window).resize(function(){
elementResize()
});
$(document).ready(function(){
elementResize()
});
function elementResize(){
$('#div2').width($("#parent").width()-$("#div1").width());
$('#div1').height($("#parent").height());
var parentwidth = $("#parent").width(),
div1width = $("#div1").width(),
div2width = $("#div2").width(),
div1percentage = Math.round((div1width / parentwidth) * 100),
div2percentage = Math.round((div2width / parentwidth) * 100);
$('.div1').val(div1percentage);
$('.div2').val(div2percentage);
}