如何简化此JavaScript代码

如何简化此JavaScript代码,javascript,css,Javascript,Css,我有三个div,它们与css堆叠在一起。中间的那个应该是一个可拖动的分隔符,这样顶部的div及其内容在上面,另一个div在下面。每个都有自己的滚动条。看 但是,如果发现我的js代码不是很好,它可以工作,因为它分别设置了三个div的高度: html: css代码 #包装器{ 身高:100%; 宽度:100%; 溢出:自动; 位置:相对位置; } #内容{ 位置:固定; 底部:25%; 宽度:100%; 身高:75%; 溢出:滚动; 溢出x:隐藏; } #拖拉机{ 位置:固定; 底部:25%;

我有三个div,它们与css堆叠在一起。中间的那个应该是一个可拖动的分隔符,这样顶部的div及其内容在上面,另一个div在下面。每个都有自己的滚动条。看

但是,如果发现我的js代码不是很好,它可以工作,因为它分别设置了三个div的高度:

html:


css代码

#包装器{
身高:100%;
宽度:100%;
溢出:自动;
位置:相对位置;
}
#内容{
位置:固定;
底部:25%;
宽度:100%;
身高:75%;
溢出:滚动;
溢出x:隐藏;
}
#拖拉机{
位置:固定;
底部:25%;
宽度:100%;
光标:ns调整大小;
高度:5px;
}
#页脚{
位置:固定;
底部:0;
宽度:100%;
身高:25%;
溢出:滚动;
溢出x:隐藏;
}
js代码:

。。。
$(“#页脚”).css({
“高度”:体型-e.pageY
});
$('#content').css({
“底部”:车身尺寸-e.pageY,
“高度”:e.pageY
});
$('#dragger').css({
“底部”:车身尺寸-e.pageY
});
...
有没有更好的方法来实现相同的行为,我想了一些方法,使页脚和内容div的高度取决于拖动器在css中的位置。但我不知道怎么做。有人能帮我吗?

你打了三次相同的电话。不要这样做,只需在开始时计算:

var height = bodySize - e.pageY;
然后在计算的每个位置都删除该变量:

$('#footer').css({
    "height": height
});
$('#content').css({
    "bottom": height,
     height": e.pageY
});
$('#dragger').css({
    "bottom": height
});
另外,不要调用
$(document.body)
三次,只需将
调用上的各种
链接在一起即可

$(document.body).on("mousemove", function (e) {
    ....
}).on("mousedown", "#dragger", function (e) {
    ....
}).on("mouseup", function (e) {
    ....
});

你打了三次相同的电话。不要这样做,只需在开始时计算:

var height = bodySize - e.pageY;
然后在计算的每个位置都删除该变量:

$('#footer').css({
    "height": height
});
$('#content').css({
    "bottom": height,
     height": e.pageY
});
$('#dragger').css({
    "bottom": height
});
另外,不要调用
$(document.body)
三次,只需将
调用上的各种
链接在一起即可

$(document.body).on("mousemove", function (e) {
    ....
}).on("mousedown", "#dragger", function (e) {
    ....
}).on("mouseup", function (e) {
    ....
});

你打了三次相同的电话。不要这样做,只需在开始时计算:

var height = bodySize - e.pageY;
然后在计算的每个位置都删除该变量:

$('#footer').css({
    "height": height
});
$('#content').css({
    "bottom": height,
     height": e.pageY
});
$('#dragger').css({
    "bottom": height
});
另外,不要调用
$(document.body)
三次,只需将
调用上的各种
链接在一起即可

$(document.body).on("mousemove", function (e) {
    ....
}).on("mousedown", "#dragger", function (e) {
    ....
}).on("mouseup", function (e) {
    ....
});

你打了三次相同的电话。不要这样做,只需在开始时计算:

var height = bodySize - e.pageY;
然后在计算的每个位置都删除该变量:

$('#footer').css({
    "height": height
});
$('#content').css({
    "bottom": height,
     height": e.pageY
});
$('#dragger').css({
    "bottom": height
});
另外,不要调用
$(document.body)
三次,只需将
调用上的各种
链接在一起即可

$(document.body).on("mousemove", function (e) {
    ....
}).on("mousedown", "#dragger", function (e) {
    ....
}).on("mouseup", function (e) {
    ....
});

谢谢你的建议,但我的目标是,我只需要改变一个部门的位置,其他部门也会相应地适应。除了你已经做过的事情,我不知道你如何才能做到这一点。HTML元素通常不够“聪明”,不足以知道它们的兄弟姐妹在做什么,尤其是在高度方面。可以将包含元素移动到包含两个单单元格行的表中。然后,您可以使用一些JS魔法来拖动并调整这两个单元格的大小。有几个插件可以为你实现这一点。谢谢你的提示,但我的目标是,我只需要改变一个div的位置,其他div也会相应地适应。除了你已经做过的,我不知道你如何实现这一点。HTML元素通常不够“聪明”,不足以知道它们的兄弟姐妹在做什么,尤其是在高度方面。可以将包含元素移动到包含两个单单元格行的表中。然后,您可以使用一些JS魔法来拖动并调整这两个单元格的大小。有几个插件可以为你实现这一点。谢谢你的提示,但我的目标是,我只需要改变一个div的位置,其他div也会相应地适应。除了你已经做过的,我不知道你如何实现这一点。HTML元素通常不够“聪明”,不足以知道它们的兄弟姐妹在做什么,尤其是在高度方面。可以将包含元素移动到包含两个单单元格行的表中。然后,您可以使用一些JS魔法来拖动并调整这两个单元格的大小。有几个插件可以为你实现这一点。谢谢你的提示,但我的目标是,我只需要改变一个div的位置,其他div也会相应地适应。除了你已经做过的,我不知道你如何实现这一点。HTML元素通常不够“聪明”,不足以知道它们的兄弟姐妹在做什么,尤其是在高度方面。可以将包含元素移动到包含两个单单元格行的表中。然后,您可以使用一些JS魔法来拖动并调整这两个单元格的大小。有一些插件可以为您实现这一点。