展开微件充当用于打开微件的可单击按钮。
如果将 Slider, HistogramRangeSlider, 或者 TimeSlider 作为 content添加到"展开"小组件中, 则小组件的容器或父容器必须在 CSS 中具有一个 width
才能在"展开"小组件中呈现。
如果在滑块的容器上设置宽度, 请将 slider.container
设置为展开的内容,而不是滑块本身。
expand.content = slider.container
有关获得对widget样式的完全控制的信息,请参阅样式主题。
// LayerList
layerList = new LayerList({
container: document.createElement("div"),
view: view
});
layerListExpand = new Expand({
expandIconClass: "esri-icon-layer-list", // see https://doc.geoscene.cn/javascript/4.23/guide/esri-icon-font/
// expandTooltip: "Expand LayerList", // optional, defaults to "Expand" for English locale
view: view,
content: layerList
});
view.ui.add(layerListExpand, "top-right");
构造函数
属性列表
属性 | 类型 | 描述 | 类 | |
---|---|---|---|---|
Boolean | 更多信息 在视图的视点更新时自动折叠展开微件实例。 | 更多信息 | Expand | |
Boolean|Function | 更多信息 如果为 true,则当键盘焦点位于其内容范围内时,按下 Esc 键后,"展开"微件将关闭。 | 更多信息 | Expand | |
String | 更多信息 用于设置"展开"按钮样式的图标字体。 | 更多信息 | Expand | |
String | 更多信息 要显示的工具提示,指示可以折叠展开微件。 | 更多信息 | Expand | |
String|HTMLElement | 更多信息 包含widget的DOM元素的ID或者节点 | 更多信息 | Widget | |
Node|String|Widget | 更多信息 要在展开的"展开"微件中显示的内容。 | 更多信息 | Expand | |
String | 更多信息 类名。 | 更多信息 | Accessor | |
Boolean | 更多信息 指示微件当前是否已展开。 | 更多信息 | Expand | |
String | 更多信息 用于设置"展开"按钮样式的图标字体。 | 更多信息 | Expand | |
String | 更多信息 要显示的工具提示指示可以展开"展开"微件。 | 更多信息 | Expand | |
String | 更多信息 此值将两个或多个"展开"小组件实例相互关联,从而允许一个实例在同一组中的另一个实例展开时自动折叠。 | 更多信息 | Expand | |
Number | 更多信息 显示在小组件一角的数字,用于指示未解决的问题或未读通知的数量。 | 更多信息 | Expand | |
String | 更多信息 创建部件时分配给部件的唯一ID。 | 更多信息 | Widget | |
String | 更多信息 widget 默认的label | 更多信息 | Expand | |
String | 更多信息 微件的显示模式。 | 更多信息 | Expand | |
MapView|SceneView | 更多信息 | 更多信息 | Expand | |
ExpandViewModel | 更多信息 widget的视图模型。 | 更多信息 | Expand | |
Boolean | 更多信息 是否显示widget | 更多信息 | Widget |
属性详细说明
-
autoCollapse Boolean
-
在视图的视点更新时自动折叠展开微件实例。
- 默认值:false
-
如果为 true,则当键盘焦点位于其内容范围内时,按下 Esc 键后,"展开"微件将关闭。此属性也可以设置为返回布尔值的函数,,从而允许对何时允许从
esc
键关闭展开小部件进行更多自定义。- 默认值:true
示例代码:let expand = new Expand({ view: view, content: searchWidget, // 微件不能从ESC关闭 closeOnEsc: false });
let expand = new Expand({ view: view, content: searchWidget, // 当搜索小部件没有活动菜单时,小部件将在ESC上关闭 closeOnEsc: function() { return searchWidget.activeMenu === "none" } });
-
collapseIconClass String起始版本: GeoScene API for JavaScript 4.22
-
用于设置"展开"按钮样式的图标字体。
-
collapseTooltip String
-
要显示的工具提示,指示可以折叠展开微件。
- 默认值:"Collapse" (English locale)
-
-
包含widget的DOM元素的ID或者节点,此属性只能设置一次。以下示例都是使用小部件时的有效用例。
示例代码:// 在运行时创建HTML div元素,并将其设置为小部件的容器 const basemapGallery = new BasemapGallery({ view: view, container: document.createElement("div") }); // 添加widget 在 view的右上角 view.ui.add(basemapGallery, { position: "top-right" });
// 创建 HTML div 元素 并且设置为widget的容器 const basemapGallery = new BasemapGallery({ view: view, container: basemapGalleryDiv }); // 添加widget 在 view的右上角 view.ui.add(basemapGallery, { position: "top-right" }); // HTML 标签 <body> <div id="viewDiv"></div> <div id="basemapGalleryDiv"></div> </body>
// 在添加到视图的UI时指定widget const basemapGallery = new BasemapGallery({ view: view }); // 添加widget 在 view的右上角 view.ui.add(basemapGallery, { position: "top-right" });
-
要在展开的"展开"微件中显示的内容。
如果将 Slider, HistogramRangeSlider, 或者 TimeSlider 作为 content添加到"展开"小组件中, 则小组件的容器或父容器必须在 CSS 中具有一个
width
才能在"展开"小组件中呈现。如果在滑块的容器上设置宽度, 请将
slider.container
设置为展开的内容,而不是滑块本身。expand.content = slider.container
示例代码:// A. 小部件指定内容 let searchWidget = new Search({ view: view }); let expand = new Expand({ expandIconClass: "esri-icon-search", view: view, content: searchWidget }); view.ui.add(expand, "bottom-left");
// B. string (of HTML) 作为内容 content: "Hi, I can have <input placeholder='HTML'/>!"
// C. DOM 节点作为内容 let node = domConstruct.create("div", { innerHTML: "I'm a real node!" }); let expand = new Expand({ expandIconClass: "esri-icon-right-arrow", view: view, content: node }); view.ui.add(expand, "top-right");
-
起始版本: GeoScene API for JavaScript 4.22
-
类名。类的名称声明格式为
geoscene.folder.className
。
-
expanded Boolean
-
指示微件当前是否已展开。
- 默认值:false
-
expandTooltip String
-
要显示的工具提示指示可以展开"展开"微件。
- 默认值:"Expand" (English locale)
-
group String起始版本: GeoScene API for JavaScript 4.22
-
此值将两个或多个"展开"小组件实例相互关联,从而允许一个实例在同一组中的另一个实例展开时自动折叠。要使自动折叠生效,组的所有实例都必须包含在 view.ui 中。
例如,如果将多个展开实例放置在视图 UI 的左上角,则可以将它们分配给名为
top-left
的组。如果展开了一个 Expand 实例,并且用户单击top-left
组中的其他实例, 则第一个实例将折叠,从而使第二个实例的内容完全可见。示例代码:let expand1 = new Expand({ view: view, content: document.getElementById("bg-gallery"), expandIconClass: "esri-icon-basemap", group: "bottom-right" }); let expand2 = new Expand({ view: view, content: document.getElementById("legend"), expandIconClass: "esri-icon-key", group: "bottom-right" }); view.ui.add([expand1, expand2], "bottom-right");
-
iconNumber Number
-
显示在小组件一角的数字,用于指示未解决的问题或未读通知的数量。
-
创建部件时分配给部件的唯一ID。 如果不是由开发人员设置的,它将默认为容器ID 或者如果没有容器ID,那么它将自动生成
-
label String
-
widget 默认的label
-
mode String起始版本: GeoScene API for JavaScript 4.22
-
微件的显示模式。下面列出了这些模式。
mode description auto 这是默认模式。它可以响应浏览器大小更改,并将根据是在桌面还是移动应用程序中查看小部件进行更新。 floating 如果您希望始终将小部件显示为浮动,则无论浏览器大小如何,请使用此模式。 drawer 如果您希望始终将小部件显示为浮动,则无论浏览器大小如何,请使用此模式。 可选值:"auto"|"floating"|"drawer"
- 默认值:"auto"
-
viewModel ExpandViewModelautocast
-
widget的视图模型。 这是一个包含控制此小部件行为的所有逻辑(属性和方法)的类。请参阅 ExpandViewModel 类以访问小组件上的所有属性和方法。
-
是否显示widget
如果为
false
, 小部件将不再呈现在web文档中。这可能会影响文档中其他元素或小部件的布局。例如,如果此小部件是与 view UI, 右上角关联的三个小部件中的第一个,那么当此小部件不可见时,其他小部件将重新定位。 有关更多信息,请参阅CSS display 值"none"
.- 默认值:true
示例代码:// 在view中隐藏widget widget.visible = false;
方法列表
属性 | 返回值类型 | 描述 | 类 | |
---|---|---|---|---|
String | 更多信息 用于为widgets的 | 更多信息 | Widget | |
更多信息 Collapse the widget. | 更多信息 | Expand | ||
更多信息 销毁widget实例。 | 更多信息 | Widget | ||
Boolean | 更多信息 在实例上触发事件。 | 更多信息 | Widget | |
更多信息 Expand the widget. | 更多信息 | Expand | ||
Boolean | 更多信息 指示实例上是否存在与提供的事件名称匹配的事件侦听器。 | 更多信息 | Widget | |
Boolean | 更多信息
| 更多信息 | Widget | |
Boolean | 更多信息
| 更多信息 | Widget | |
Boolean | 更多信息
| 更多信息 | Widget | |
Object | 更多信息 在实例上注册事件处理程序。 | 更多信息 | Widget | |
更多信息 Widget teardown helper. | 更多信息 | Widget | ||
更多信息 这种方法主要由开发人员在实现自定义widget时使用。 | 更多信息 | Widget | ||
Object | 更多信息 这种方法主要由开发人员在实现自定义widget时使用。 | 更多信息 | Widget | |
更多信息 立即将widget渲染到DOM。 | 更多信息 | Widget | ||
更多信息 这种方法主要由开发人员在实现自定义widget时使用。 | 更多信息 | Widget | ||
更多信息 Toggle the widget by expanding it if it's collapsed, or collapsing it if it's expanded. | 更多信息 | Expand | ||
Promise | 更多信息
| 更多信息 | Widget |
方法详细说明
-
起始版本: GeoScene API for JavaScript 4.22
-
用于为widget的类属性构建值的实用方法
undefinedclass 属性
. 这有助于简化CSS类设置.参数:repeatable class 类名称
返回值:类型 描述 String The computed class name. 示例代码:// .tsx语法显示在渲染widget时如何设置CSS classs . render() { const dynamicIconClasses = { [CSS.myIcon]: this.showIcon, [CSS.greyIcon]: !this.showIcon }; return ( <div class={classes(CSS.root, CSS.mixin, dynamicIconClasses)} /> ); }
-
collapse()
-
Collapse the widget.
-
destroy()inherited
-
销毁widget实例。
-
起始版本: GeoScene API for JavaScript 4.22
-
在实例上触发事件。仅当创建此类的子类时才应使用此方法。
参数:type String事件名称
event Objectoptional事件负载。
返回值:类型 描述 Boolean 如果侦听器收到通知,则为 true
-
expand()
-
展开微件。
-
起始版本: GeoScene API for JavaScript 4.22
-
isFulfilled()
可用于验证创建类的实例是否已完成(无论成功或失败)。 如果已完成,将会返回true
。返回值:类型 描述 Boolean 指示创建类的实例是否已完成(无论成功或失败)。
-
起始版本: GeoScene API for JavaScript 4.22
-
isRejected()
可用于验证创建类的实例是否失败。 如果失败, 将会返回true
。返回值:类型 描述 Boolean 指示是否已拒绝创建类的实例。
-
起始版本: GeoScene API for JavaScript 4.22
-
isResolved()
可用于验证创建类的实例是否成功。 如果成功, 将会返回true
。返回值:类型 描述 Boolean 指示是否已解析创建类的实例。
-
在实例上注册事件处理程序。调用此方法将事件与侦听器挂钩
参数:要监听的event 或者事件数组
listener Function事件触发时要调用的函数
返回值:类型 描述 Object 返回一个 remove()
方法的事件处理程序,该方法用以停止侦听事件。属性 类型 描述 remove Function 当被调用时,从事件中移除监听器。 示例代码:view.on("click", function(event){ // event是事件触发后返回的事件句柄。 console.log(event.mapPoint); });
-
own(handles)inherited
-
Widget teardown helper. 当widget被销毁时,添加到它的任何句柄都将被自动删除。
参数:handles WatchHandle|WatchHandle[]widget销毁后标记为删除的句柄。
-
postInitialize()inherited
-
这种方法主要由开发人员在实现自定义widget时使用。 在widget准备好后执行。
-
这种方法主要由开发人员在实现自定义widget时使用。 它必须由子类实现以进行渲染。
返回值:类型 描述 Object 渲染虚拟节点。
-
renderNow()inherited
-
立即将widget渲染到DOM。
-
scheduleRender()inherited
-
这种方法主要由开发人员在实现自定义widget时使用。 计划小部件渲染。此方法对于影响UI的更改非常有用。
-
toggle()
-
切换微件时,如果构件已折叠,则将其展开,如果展开,则将其折叠。
-
起始版本: GeoScene API for JavaScript 4.22
-
when()
创建类的实例后,会被执行一次。该方法接受两个参数:callback
函数和errback
函数。callback
在类的实例加载时执行。 如果类的实例无法加载,则执行errback
。参数:callback Functionoptional当 Promise 成功时,该函数将被调用。
errback Functionoptional当 Promise 失败时,该函数将被调用。
返回值:类型 描述 Promise 返回回调结果的新promise,可用于 chain additional functions. 示例代码:// 尽管此示例使用 BasemapGallery widget,但任何作为 Promise 的类实例都可以以相同的方式使用 when() let bmGallery = new BasemapGallery(); bmGallery.when(function(){ // 当 Promise resolved 时,函数将被执行 }, function(error){ // 当 Promise 通过 rejected 抛错时,这个函数将被执行 });