SAPUI5 中的图像映射
ImageMap in SAPUI5
我正在尝试在 SAPUI5 中获取 ImageMap 功能。
我已经完成了 html 和 core:html 标签 - 它工作正常,我可以按我感兴趣的区域,但它没有解决我的问题,因为我不能在特定区域创建自定义新闻事件。
我需要根据有人点击图片的哪一部分执行不同的操作。
我想知道 UI5 中是否有 ImageMap 和 Area 等效项(它在 sap.ui.commons 中,但该库已贬值)。
您可以通过将 Click 事件侦听器和 自定义数据 附加到 area
标签来实现
- XML 视图使用自定义 class (areaMap) 和自定义数据 (data-areaSelected) 到
area
标签
XML 查看
<l:VerticalLayout class="sapUiContentPadding" width="100%">
<l:content>
<core:HTML content='<img usemap="#aus-nz" src="assets/images/map.gif" width="200" height="142" alt="Map of Australia & New Zealand"> <map name="aus-nz">
<area class="areaMap" shape="poly" coords="3,47,45,12,105,7,140,60,120,125,12,90" data-areaSelected="Aus" alt="Australia">
<area class="areaMap" shape="poly" coords="180,85,200,98,167,142,157,138" data-areaSelected="NewZld" alt="New Zealand">
</map>' />
</l:content>
</l:VerticalLayout>
- 初始化区域标签的 click 事件侦听器,一旦区域被点击,相应的区域自定义数据将用于执行操作
Controller.js
onAfterRendering: function() {
this.initializeEventListener(this);
},
initializeEventListener: function(that) {
const aAreas = document.querySelectorAll('area.areaMap');
aAreas.forEach(elem => elem.addEventListener('click', function(oEvent) { //Attach click event listener to areas
that.takeAction(that, oEvent.target.dataset.areaselected);
}));
},
takeAction: function(that, selectedArea) {
//Your code
},
我正在尝试在 SAPUI5 中获取 ImageMap 功能。
我已经完成了 html 和 core:html 标签 - 它工作正常,我可以按我感兴趣的区域,但它没有解决我的问题,因为我不能在特定区域创建自定义新闻事件。
我需要根据有人点击图片的哪一部分执行不同的操作。
我想知道 UI5 中是否有 ImageMap 和 Area 等效项(它在 sap.ui.commons 中,但该库已贬值)。
您可以通过将 Click 事件侦听器和 自定义数据 附加到 area
标签来实现
- XML 视图使用自定义 class (areaMap) 和自定义数据 (data-areaSelected) 到
area
标签
XML 查看
<l:VerticalLayout class="sapUiContentPadding" width="100%">
<l:content>
<core:HTML content='<img usemap="#aus-nz" src="assets/images/map.gif" width="200" height="142" alt="Map of Australia & New Zealand"> <map name="aus-nz">
<area class="areaMap" shape="poly" coords="3,47,45,12,105,7,140,60,120,125,12,90" data-areaSelected="Aus" alt="Australia">
<area class="areaMap" shape="poly" coords="180,85,200,98,167,142,157,138" data-areaSelected="NewZld" alt="New Zealand">
</map>' />
</l:content>
</l:VerticalLayout>
- 初始化区域标签的 click 事件侦听器,一旦区域被点击,相应的区域自定义数据将用于执行操作
Controller.js
onAfterRendering: function() {
this.initializeEventListener(this);
},
initializeEventListener: function(that) {
const aAreas = document.querySelectorAll('area.areaMap');
aAreas.forEach(elem => elem.addEventListener('click', function(oEvent) { //Attach click event listener to areas
that.takeAction(that, oEvent.target.dataset.areaselected);
}));
},
takeAction: function(that, selectedArea) {
//Your code
},