在事件上移动 openlayers 缩放工具
Move openlayers zoom tools on event
尝试重现类似于 Openlayers with sidebar 的内容,一旦侧边栏展开,.ol-zoom
margin-left
就会被修改以改变其位置,但我无法使用 jquery在我的项目中,寻找基于 Vanilla JS 或 Angular 的解决方案。
我看到它很容易改变 openlayers 缩放按钮的位置作为回答 here 但我想改变某些事件触发的位置,比如(侧边栏切换按钮)按钮点击。
谢谢
在JS中可以动态添加css到应用中,例如
var css =
'.menuSeparator {' +
' border-bottom: solid 1px black;' +
'}';
var head = document.head || document.getElementsByTagName('head')[0];
var style = document.createElement('style');
style.type = 'text/css';
if (style.styleSheet){
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
head.appendChild(style);
这是我的解决方案
const olZoom = document.getElementsByClassName("ol-zoom");
const sideBarElements = document.getElementsByClassName("sidebar-left");
if(!this.sidebarVisibility) {
(olZoom[0] as HTMLElement).style.marginLeft = "0px";
(olZoom[0] as HTMLElement).style.marginTop = "60px";
} else {
setTimeout(() => {
(olZoom[0] as HTMLElement).style.marginLeft = ((sideBarElements[0] as HTMLElement).offsetWidth - 10) + 'px';
(olZoom[0] as HTMLElement).style.marginTop = "0px";
}, 50);
}
我面临的主要问题是我没有按照解释 将打字稿中的 Element
转换为 HTMLElement
,这阻碍了我应用我的 margin
风格
尝试重现类似于 Openlayers with sidebar 的内容,一旦侧边栏展开,.ol-zoom
margin-left
就会被修改以改变其位置,但我无法使用 jquery在我的项目中,寻找基于 Vanilla JS 或 Angular 的解决方案。
我看到它很容易改变 openlayers 缩放按钮的位置作为回答 here 但我想改变某些事件触发的位置,比如(侧边栏切换按钮)按钮点击。
谢谢
在JS中可以动态添加css到应用中,例如
var css =
'.menuSeparator {' +
' border-bottom: solid 1px black;' +
'}';
var head = document.head || document.getElementsByTagName('head')[0];
var style = document.createElement('style');
style.type = 'text/css';
if (style.styleSheet){
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
head.appendChild(style);
这是我的解决方案
const olZoom = document.getElementsByClassName("ol-zoom");
const sideBarElements = document.getElementsByClassName("sidebar-left");
if(!this.sidebarVisibility) {
(olZoom[0] as HTMLElement).style.marginLeft = "0px";
(olZoom[0] as HTMLElement).style.marginTop = "60px";
} else {
setTimeout(() => {
(olZoom[0] as HTMLElement).style.marginLeft = ((sideBarElements[0] as HTMLElement).offsetWidth - 10) + 'px';
(olZoom[0] as HTMLElement).style.marginTop = "0px";
}, 50);
}
我面临的主要问题是我没有按照解释 Element
转换为 HTMLElement
,这阻碍了我应用我的 margin
风格