Layout DOJO ContentPane内部DIV高度在ContentPane调整大小时更改
我正在使用DOJO的ContentPane模块。我在其中一个窗格中有一个div元素,我需要给它一个特定的高度-比ContentPane的高度小100个像素,这样当您通过拖动拆分器更改ContentPane大小时,div会动态更改其高度。我是Dojo的新手,如果有人能帮我,我会很高兴的Layout DOJO ContentPane内部DIV高度在ContentPane调整大小时更改,layout,dojo,dijit.layout,contentpane,Layout,Dojo,Dijit.layout,Contentpane,我正在使用DOJO的ContentPane模块。我在其中一个窗格中有一个div元素,我需要给它一个特定的高度-比ContentPane的高度小100个像素,这样当您通过拖动拆分器更改ContentPane大小时,div会动态更改其高度。我是Dojo的新手,如果有人能帮我,我会很高兴的 谢谢。我认为最好的解决方案是通过带有正确设置拆分器的嵌套BorderContainer,因为这样dijit/layout将负责调整大小,您不需要编写任何JavaScript代码,并且您的布局将完全基于CSS 解释起
谢谢。我认为最好的解决方案是通过带有正确设置拆分器的嵌套BorderContainer,因为这样dijit/layout将负责调整大小,您不需要编写任何JavaScript代码,并且您的布局将完全基于CSS 解释起来有点麻烦,所以我在jsFiddle为您创建了一个工作示例:+一个图表: 注意:不要忘记为html、正文和顶部边框容器设置高度:100% 此解决方案的缺点是必须用ContentPanes替换普通div。如果不想或不能,可以使用dojo/aspect并连接到BorderContainer或ContentPane resize方法,并在大小更改时手动调整div的大小:
require([
"dojo/ready",
"dojo/aspect",
"dijit/registry",
"dijit/layout/ContentPane",
"dijit/layout/BorderContainer"
], function(
ready,
aspect,
registry
) {
ready(function() {
var bc = registry.byId("borderContainer1");
aspect.after(bc, "resize", function() {
// calculate and set <div> size here
console.log("resize divs");
});
});
});
我认为最好的解决方案是通过嵌套的bordercontainer和正确设置的拆分器,因为这样dijit/layout将负责调整大小,您不需要编写任何JavaScript代码,并且您的布局将完全基于CSS 解释起来有点麻烦,所以我在jsFiddle为您创建了一个工作示例:+一个图表: 注意:不要忘记为html、正文和顶部边框容器设置高度:100% 此解决方案的缺点是必须用ContentPanes替换普通div。如果不想或不能,可以使用dojo/aspect并连接到BorderContainer或ContentPane resize方法,并在大小更改时手动调整div的大小:
require([
"dojo/ready",
"dojo/aspect",
"dijit/registry",
"dijit/layout/ContentPane",
"dijit/layout/BorderContainer"
], function(
ready,
aspect,
registry
) {
ready(function() {
var bc = registry.byId("borderContainer1");
aspect.after(bc, "resize", function() {
// calculate and set <div> size here
console.log("resize divs");
});
});
});