Javascript if语句不适用于文本颜色
好的,基本上我想做的是切换一个p元素的颜色,t改变,但是如果条件总是假的话:Javascript if语句不适用于文本颜色,javascript,html,sass,Javascript,Html,Sass,好的,基本上我想做的是切换一个p元素的颜色,t改变,但是如果条件总是假的话: Html: <p id="brand-element-Samsung" onclick="itemSelectedSamsung()" style="color: #ff0000">Samsung</p> Sass: p width: 50% margin: 25px 23px 20px 23px pad
Html:
<p id="brand-element-Samsung" onclick="itemSelectedSamsung()" style="color: #ff0000">Samsung</p>
Sass:
p
width: 50%
margin: 25px 23px 20px 23px
padding: 15px 15px 15px 15px
cursor: pointer
&:hover
color: #a3abb1
transition: color .2s ease
Js:
function itemSelectedSamsung() {
var inactiveColor = "#ff0000"
var activeColor = "#2c3e50"
var hoveredColor = "#a3abb1"
var text = document.getElementById('brand-element-Samsung')
text.style.transition = "all .2s ease"
text.style.color === activeColor ? text.style.color = inactiveColor : text.style.color = activeColor
}
Html:
三星
Sass:
P
宽度:50%
利润率:25px 23px 20px 23px
填充:15px 15px 15px 15px
光标:指针
&:悬停
颜色:#a3abb1
过渡:颜色。2秒轻松
Js:
函数项SelectedSamsung(){
var inactiveColor=“#ff0000”
var activeColor=“#2c3e50”
var hoveredColor=“#a3abb1”
var text=document.getElementById('brand-element-Samsung')
text.style.transition=“所有.2s轻松”
text.style.color===activeColor?text.style.color=inactiveColor:text.style.color=activeColor
}
打印出您的文本.样式.颜色
。它将采用rgba()
格式,而不是CSS规则规定的十六进制格式。这就是它不起作用的原因
因此,对于activeColor
,也应该使用rgba()
但更好的方法是检查元素是否具有特定的类,并在CSS规则中添加颜色:
.brand-element-Samsung {
color: #ff0000;
}
.brand-element-Samsung.active {
color: #2c3e50;
}
$(document).on('click', '.brand-element-Samsung', function () {
$(this).toggleClass('active');
});
打印出您的文本.style.color
。它将采用rgba()
格式,而不是CSS规则规定的十六进制格式。这就是它不起作用的原因
因此,对于activeColor
,也应该使用rgba()
但更好的方法是检查元素是否具有特定的类,并在CSS规则中添加颜色:
.brand-element-Samsung {
color: #ff0000;
}
.brand-element-Samsung.active {
color: #2c3e50;
}
$(document).on('click', '.brand-element-Samsung', function () {
$(this).toggleClass('active');
});
不确定您在这里想要做什么,但是activeColor?text.style.color=inactiveColor:text.style.color=activeColor
看起来有误activeColor
是一个字符串,但您将其视为布尔值。您是否试图确定activeColor
的真实性?另外,我90%确定text.style.color==
应该是text.style.color=
。是否要将text.style.color
指定给新值?因为您需要使用赋值运算符(=
)来完成此操作。是的,这就是我尝试在颜色之间切换的原因。因为您将其设置为非空字符串常量,所以activateColor
始终是真实的。else条件永远不会被计算。不确定您在这里到底想做什么,但是activeColor?text.style.color=inactiveColor:text.style.color=activeColor
看起来有误activeColor
是一个字符串,但您将其视为布尔值。您是否试图确定activeColor
的真实性?另外,我90%确定text.style.color==
应该是text.style.color=
。是否要将text.style.color
指定给新值?因为您需要使用赋值运算符(=
)来完成此操作。是的,这就是我尝试在颜色之间切换的原因。因为您将其设置为非空字符串常量,所以activateColor
始终是真实的。这个条件永远不会被评估。