其实上一个的鹰眼、比例尺、图例等都是小部件;这篇文章主要是页面布局设计,dojo提供了非常多的小部件,从功能的角度可以分为3大类:表单小部件、布局小部件和应用小部件。

表单小部件于HTML中的表单部件。

布局小部件主要有3类,主要在dijit中:

面板:盛放和显示大块的内容,包括文本、图片、图表以及其他小部件。类的小部件有ContentPane、FloatingPane和ExpandoPane,后面两个位于DojoX中。

对齐方式容器:BorderContainer、LayoutContainer与SplitContainer。

堆叠容器:此类小部件可以把前面的小部件层叠在一起,而一次只显示一个屏面。AccordionContainer、TabContainer、StackContainer。

使用面板组织页面元素

最常用的面板是ContentPane,在dojo中有两个ContentPane的实现,一个是dijit/layout/ContentPane ;另一个是 dojox/layout/ContentPane ,后者扩展了前者。当提及ContentPane,如果不特别说明,就是值的前者,也就是dijit中的ContentPane。

Dijit/TitlePane与ContentPane基本类似,只是在ContentPane的基础上增加了一个标题栏,其中包含一个标题和一个按钮,按钮的作用是隐藏或显示其内容。

Dojo/layout/FloatingPane 是可以模拟Windows窗口效果的浮动面板,dojo/layout/ExpandoPane 也与 ContentPane 基本类似,但是可以折叠或展开,并可以包含其他布局小部件。

ContentPane

是所有布局小部件的基石

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>面板ContentPage的Demo</title> <link rel="stylesheet" href="http://js.arcgis.com/3.9/js/dojo/dijit/themes/tundra/tundra.css">
<link rel="stylesheet" href="http://js.arcgis.com/3.9/js/esri/css/esri.css">
<script src="http://js.arcgis.com/3.9/"></script> <script>
dojoConfig = { isDebug: true, async: true };
</script> <script>
require([
"dojo/parser", "dijit/layout/ContentPane", "dijit/form/Button",
"dojo/domReady!"
], function (parser) {
parser.parse();
});
</script> </head>
<body>
<div data-dojo-type="dijit/layout/ContentPane" style="width:100px;height:200px;float:left;">
<div data-dojo-type="dijit/form/Button">相关的信息</div>
</div>
</body>
</html>

注意的是在<html>标签中加入lang=en,但是在使用dojo小部件的时候一定要去掉,否则会出现“dojo/parser::parse() error”错误。如果要加入lang=en ,那么在dojoConfig中也要添加 lang:'en'。

然后还有一点就是由于使用了 data-dojo-type 标签属性使用了dojo小部件,但是由于这个不是标准的HTML,浏览器不能直接解析dojo的小部件,所以需要使用dojo/parser的功能来解析。没错,dojo/parser的parse() 方法就是用于解析小部件的标签属性。

FlaotingPane

可以拖动、最大、最小

ArcGIS API For JavaScript 开发(三)使用小部件设计页面框架的更多相关文章

  1. ArcGIS API for JavaScript开发环境搭建及第一个实例demo

    原文:ArcGIS API for JavaScript开发环境搭建及第一个实例demo ESRI公司截止到目前已经发布了最新的ArcGIS Server for JavaScript API v3. ...

  2. ArcGIS API for javascript开发笔记(二)——解决ArcGIS Service中的服务在内网环境下无法进行javascript预览问题

    感谢一路走来默默支持和陪伴的你~~~ ----------------------------拒绝转载-------------------------------- 1.问题说明 在使用ArcGIS ...

  3. ArcGIS API for JavaScript开发初探——HelloMap

    1.前言 在开始ArcGIS API for JavaScript开发之前我们需要了解一些基本的知识: 1.开发工具选什么? 前端技术的开发工具选择是一个仁者见仁智者见智的问题,有人喜欢Hbuilde ...

  4. ArcGIS API For JavaScript 开发(二)基础地图

    有了开发环境,接下来的就是实践了,实践是检验真理的唯一标准! 多多练习,不要觉得自己能够想的出来就万事大吉了,还是得动手做才是最好的检验自己的能力. 基础地图,本节将通过arcgis api for ...

  5. ArcGIS API for JavaScript开发环境搭建与发布以及基本功能实现

    1.背景介绍 ArcGIS API for JavaScript 咱这就不介绍了,具体可看ESRI中国的介绍:http://support.esrichina.com.cn/2011/0223/960 ...

  6. ArcGIS API for JavaScript开发初探——基础知识

    1.前言 在ArcGIS Web API开发体系中一共有四大类,分别为: ArcGIS API for Flex ArcGIS API for JavaScript ArcGIS API for RE ...

  7. ArcGIS API For JavaScript 开发(一)环境搭建

    标签:B/S结构开发,Asp.Net开发,WebGIS开发 前言:为什么写这个,一是学习:二是分享,共同进步,毕竟也是在这个园子里学到了很多: (一)环境搭建 集成开发环境:VS2013 Ultima ...

  8. ArcGIS API for javascript开发笔记(三)——解决打印输出的中文为乱码问题

    感谢一路走来默默支持和陪伴的你~~~ ----------------------欢迎来访,拒绝转载---------------------- 1.      调用ArcGIS API的Print实 ...

  9. ArcGIS API For JavaScript 开发(五)要素图层的编辑

    2018-4-3 这篇博客主要讲述要素的层的编辑功能,是基于FeatureLayer的applyEdit方法.由于自己目前正在学习当中,有许多不足之处请各位指出,欢迎指导学习! 主要功能是 1.将地图 ...

随机推荐

  1. 插件化二(Android)

    插件化二(Android) 上一篇文章<插件化一(android)>里大概构思了下插件加载与校验的流程和一些大体设计,这次就具体展开,在<动态加载与插件化>里提到以apk形式开 ...

  2. GO方法与接口

    Go语言没有沿袭传统面向对象编程中的诸多概念,比如继承.虚函数.构造函数和析构函数.隐藏的this指针等. 方法 Go 语言中同时有函数和方法.方法就是一个包含了接受者(receiver)的函数,re ...

  3. EasyTransaction主要源码分析

    EasyTransaction是一个全功能的分布式事务框架,以下特性摘抄自其首页:https://github.com/QNJR-GROUP/EasyTransaction 一个框架包含多种事务形态, ...

  4. 点菜网---Java开源生鲜电商平台-系统架构图(源码可下载)

    点菜网---Java开源生鲜电商平台-系统架构图(源码可下载) 1.点菜网-生鲜电商平台的价值与定位. 生鲜电商平台是一家致力于打造全国餐饮行业智能化.便利化.平台化与透明化服务的创新型移动互联网平台 ...

  5. 微信jssdk支付坑

    1.使用easywechat开发的时候,由于没有注意,配置文件中默认的请求地址是 https://api.weixin.qq.com/结果调试了半天,一直报错“40066” 这也是怪自己粗心,结果去分 ...

  6. 前端js倒计时(精确到毫秒)

    话不多说,直接上代码: 有需要直接拿走, <html> <head> <style> div{ width:100%; text-align:center; fon ...

  7. Ruby中的各种比较方式对比

    Ruby中设计了很多种比较方式,所有对象都能进行==.!=.===.<=>.eql?.equal?这几种比较.此外,当实现了<=>之后,如果还include了Comparabl ...

  8. C语言版数据结构笔记

    现在把以前学的数据结构知识再理一遍,上机测试.首先最重要的是链表.在我看来,链表其实就是由一个个结构体连接而成的,创建一个链表有多种方式,头插法,尾插法等,这里采用的是尾插法.表述有不对的地方,欢迎更 ...

  9. Python批量自动裁剪图片

    """用Pythonp批量裁剪图片""" from PIL import Image import matplotlib.pyplot as ...

  10. ES6_09_Generator函数

    Generator函数: 概念: 1.ES6提供的解决异步编程的方案之一 2.Generator函数是一个状态机,内部封装了不同状态的数据, 3.用来生成遍历器对象 4.可暂停函数(惰性求值), yi ...