Как изменить высоту элемента карты по нажатию кнопки?
Я хочу удалить стили назад и вперед по нажатию кнопки, но когда я пытаюсь изменить размер, карта рендерится по всему экрану, но без фона, только маркеры, которые были на нем.
Поэтому в основном я хочу удалить стилизацию и скрыть элемент списка и отображать элемент карты только одним щелчком мыши и следующим, чтобы снова отобразить список и изменить размер карты, как это было изначально.
есть идеи?
**Updated**
**aura component**
<aura:component >
<aura:attribute name="map" type="Object"/>
<aura:attribute name="buttonstate" type="Boolean" default="false"/>
<div aura:id= "screen">
<div id="map" aura:id="mapSize" class="mapSize" style="position:relative;">
<lightning:button class="button" aura:id="buttonList" label="Button" onclick="{!c.handleClick}" />
</div>
</div>
<div aura:id="listDiv" class ="listDiv">
<c:List />
</div>
</div>
</aura:component>
**CSS**
.cAccountMap .mapSize{
width: 100%;
height: 80%;
}
.cAccountMap .mapTestSize{
height: 100%;
}
.THIS .listDiv{
height: 20%;
}
}
**Javascript**
handleClick : function(component,event,helper){
var buttonName = event.getSource();
var elements = document.getElementsByClassName("listDiv");
var buttonstate = component.get('v.buttonstate');
var cmpTarget = component.find('mapSize');
if(buttonstate==false){
buttonName.set('v.label', 'LALA');
elements[0].style.display = 'none';
$A.util.removeClass(cmpTarget, 'mapSize');
$A.util.addClass(cmpTarget, 'mapTestSize');
}else{
buttonName.set('v.label', 'gogo');
elements[0].style.display = '';
$A.util.addClass(cmpTarget, 'mapSize');
$A.util.removeClass(cmpTarget, 'mapTestSize');
}
component.set('v.buttonstate', !buttonstate);
}
1 ответ
Решение
After multiple tries i managed to find the solution
aura component is the same
css
.cAccountMap .mapSize{
width: 100%;
height: 65%;
}
.THIS .listDiv{
height: 35%;
}
.THIS .listHideDiv{
height: 0%;
}
Javascript
handleClick : function(component,event,helper){
var changeViewButton = event.getSource();
var listDiv = document.getElementsByClassName("listDiv");
var mapDiv = document.getElementsByClassName("mapSize");
var buttonstate = component.get('v.buttonstate');
var cmpList = component.find('listDiv');
if(buttonstate==false){
changeViewButton.set('v.label', 'lala');
listDiv[0].style.display = 'none';
mapDiv[0].style.height = '100%';
$A.util.addClass(cmpList, 'listHideDiv');
}else{
changeViewButton.set('v.label', 'gogo');
$A.util.removeClass(cmpList, 'listHideDiv');
listDiv[0].style.display = '';
mapDiv[0].style.height = '65%';
}
component.set('v.buttonstate', !buttonstate);
}
Таким образом, стиль высоты карты был изменен с JavaScript