Dojo开发之布局容器和堆叠容器使用

本篇博客我们来学习一下Dojo开发中常用到的布局容器BorderContainer和堆叠容器的使用。

1、BorderContainer

它是一个布局容器,主要分为5个区域,上下左右中。每个BorderContainer都有两种不同的方式布局,可以通过“design”属性来控制,分别为headlinesidebar,布局方式如下图所示:


2、堆叠容器

当页面中的内容比较多的时候,可以使用堆叠容器显示部分元素,主要有3种类型:

StackContainer最普通的一种,需要自己编写控制和代码。

AccordionContainer导航按钮在面板内显示。

TabContainer按钮在前端一字排开。


3、示例代码

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>dojo之BorderContainer和堆叠容器</title>
    <style type="text/css">
        html,body
        {
            width: 100%;
            height: 100%;
            margin: 0;
            overflow: hidden;
        }
        #borderContainer
        {
            width: 100%;
            height: 100%;
        }
    </style>
    <script type="text/javascript">
        dojoConfig = { parseOnLoad: true };
    </script>
    <link href="Scripts/dijit/themes/claro/claro.css" rel="stylesheet" />
    <script type="text/javascript" src="Scripts/dojo/dojo.js"></script>
    <script type="text/javascript">
        require(["dojo/parser","dijit/layout/ContentPane","dijit/layout/BorderContainer","dijit/layout/TabContainer","dijit/layout/AccordionContainer","dijit/layout/AccordionPane"]);
    </script>
</head>
<body class="claro">
    <div data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="gutters:true,liveSplitters:false"
        id="borderContainer">
        <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top',splitter:false"
            style="background-color: grey">
            合肥市防汛抗旱综合应用系统
        </div>
        <div data-dojo-type="dijit/layout/AccordionContainer" data-dojo-props="minSize:20,region:'right',splitter:true"
            style="width: 300px;" id="leftAccordion">
            <div data-dojo-type="dijit/layout/AccordionPane" title="汛情概览">
            </div>
            <div data-dojo-type="dijit/layout/AccordionPane" title="实时雨情">
            </div>
            <div data-dojo-type="dijit/layout/AccordionPane" title="汛情预警" selected="true">
            </div>
            <div data-dojo-type="dijit/layout/AccordionPane" title="实时水情">
            </div>
        </div>
        <div data-dojo-type="dijit/layout/TabContainer" data-dojo-props="region:'center',tabStrip:true">
            <div data-dojo-type="dijit/layout/ContentPane" title="系统首页" selected="true">
                系统首页</div>
            <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="closable:true" title="实时视频">
                实时视频</div>
            <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="closable:true" title="水利工程">
                水利工程</div>
        </div>
        <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'bottom'"
            style="background-color: red">
            暖枫无敌2015 @版权所有 当前时间:2015年12月15日 星期二
        </div>
    </div>
</body>
</html>

4、显示效果如下图所示:

相关文章

我有一个网格,可以根据更大的树结构编辑小块数据.为了更容易...
我即将开始开发一款教育性的视频游戏.我已经决定以一种我可以...
我正在使用带有Grails2.3.9的Dojo1.9.DojoNumberTextBox小部...
1.引言鉴于个人需求的转变,本系列将记录自学arcgisapiforja...
我正在阅读使用dojo’sdeclare进行类创建的语法.描述令人困惑...
我的团队由更多的java人员和JavaScript经验丰富组成.我知道这...