Я получаю какое-то странное поведение, пытаясь реализовать условие для стиля элементов в Vuejs.
Я видел С.О. посты о том, как реализовать троичный код как с помощью интерполированной строки, так и с помощью вычисляемого объекта стиля. Я пробовал оба, но ни один из них не работает должным образом.
Учитывая этот div:
<div
:class="{'radar__container':true,'inactive':inactive}"
:style= "[inactive ? {getStyleRadarContainerInactive} : {getStyleRadarContainer}]"
>
Я бы реализовал этот стиль:
computed: {
getStyleRadarContainer: function(){
let styleRadarContainer = {
left: this.radarItem.posX*100 + '%',
top: this.radarItem.posY*100 + '%',
transform: 'translate(-50%,-50%) scale(' + this.radarItem.scale + ')',
opacity: this.radarItem.opacity,
}
return styleRadarContainer;
},
getStyleRadarContainerInactive: function(){
let styleRadarContainerInactive= {
left: this.radarItem.posX*100 + '%',
top: this.radarItem.posY*100 + '%',
transform: 'translate(-50%,-50%) scale(0)',
opacity: this.radarItem.opacity,
}
return styleRadarContainerInactive;
},
}
Это должно уменьшить масштаб каждого из этих элементов (из-за масштаба (0) в свойстве непрозрачности), но вместо этого атрибут стиля вообще не отображается. Я также попробовал встроенный троичный элемент в опоре стиля (поскольку этот масштаб — единственное, что меняется между двумя свойствами:
transform: 'translate(-50%,-50%) ' + inactive ? 'scale(' + radarItem.scale + ')' : 'scale(0)',
Что мне не хватает?