【发布时间】:2019-12-31 23:23:00
【问题描述】:
我在尝试为 Vuejs 中的项目样式实现条件时遇到了一些奇怪的行为。
我见过 S.O.关于如何通过插值字符串或计算样式对象实现三元组的帖子。我都试过了,但都不能正常工作。
给定这个 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;
},
}
这应该使这些项目中的每一个都缩小(因为 opacity 属性中的 scale(0) ),但样式属性根本不呈现。我还在 style 属性上尝试了一个内联三元组(因为比例是两个属性之间唯一变化的东西:
transform: 'translate(-50%,-50%) ' + inactive ? 'scale(' + radarItem.scale + ')' : 'scale(0)',
我错过了什么?
【问题讨论】:
标签: javascript css vue.js conditional-statements ternary-operator