我对这些情况有疑问。
我希望身体根据温度改变颜色。
它效果很好,但它只是被认为是'#e74c3c'
的最后一种颜色。
例如,它是15度,我得到红色'#e74c3c
'然后它不是30°。
if(weather.temp > 0) {
$('body').animate({backgroundColor: '#3498db'}, 1500);
} else {
$('body').animate({backgroundColor: '#3498db'}, 1500);
}
if(weather.temp > 10) {
$('body').animate({backgroundColor: '#f1c40f'}, 1500);
} else {
$('body').animate({backgroundColor: '#f1c40f'}, 1500);
}
if(weather.temp > 20) {
$('body').animate({backgroundColor: '#f39c12'}, 1500);
} else {
$('body').animate({backgroundColor: '#f39c12'}, 1500);
}
if(weather.temp > 30) {
$('body').animate({backgroundColor: '#e74c3c'}, 1500);
} else {
$('body').animate({backgroundColor: '#e74c3c'}, 1500);
}
答案 0 :(得分:2)
因为你的最后一个会被触发任何< = 30.你应该使用一个if,以及其他几个ifs。
if (weather.temp <= 10) {
$('body').animate({
backgroundColor: '#3498db'
}, 1500);
} else if (weather.temp > 10 && weather.temp <= 20) {
$('body').animate({
backgroundColor: '#f1c40f'
}, 1500);
} else if (weather.temp > 20 && weather.temp <= 30) {
$('body').animate({
backgroundColor: '#f39c12'
}, 1500);
} else if (weather.temp > 30) {
$('body').animate({
backgroundColor: '#e74c3c'
}, 1500);
}
答案 1 :(得分:1)
执行到达时:
if(weather.temp > 30) {
$('body').animate({backgroundColor: '#e74c3c'}, 1500);
} else {
$('body').animate({backgroundColor: '#e74c3c'}, 1500);
}
它会将您的背景颜色设置为#e74c3c或........#e74c3c。
使用else将这些链接在一起会得到预期的结果:
if (weather.temp <= 10) {
$('body').animate({backgroundColor: '#3498db'}, 1500);
} else if (weather.temp > 10 && weather.temp <= 20) {
$('body').animate({backgroundColor: '#f1c40f'}, 1500);
} else if (weather.temp > 20 && weather.temp <= 30) {
$('body').animate({backgroundColor: '#f39c12'}, 1500);
} else if (weather.temp > 30) {
$('body').animate({backgroundColor: '#e74c3c'}, 1500);
}
答案 2 :(得分:1)
if(weather.temp >= 0 && weather.temp <= 10 ) {
$('body').animate({backgroundColor: '#3498db'}, 1500);
} else if(weather.temp > 10 && weather.temp <= 20 ) {
$('body').animate({backgroundColor: '#f1c40f'}, 1500);
} else if(weather.temp > 20 && weather.temp <= 30 ) {
$('body').animate({backgroundColor: '#f39c12'}, 1500);
} else if(weather.temp > 30) {
$('body').animate({backgroundColor: '#e74c3c'}, 1500);
}
你必须在你的第一个上加weather.temp >= 0
的下限,否则负温度会触发颜色,这不是原始规格的一部分。如果您确实需要负温度来触发颜色,请删除该子句。
答案 3 :(得分:0)
它看起来像是动画颜色#f1c40f,但接着转到20度和30度的if语句并执行else语句,无论它是否超过30度,它都会激活身体。
试试这个:
if ( temp <= 10 )
//animate body
else if( > 10 )
//animate body
else if( > 20 )
//animate body
else if( > 30 )
//animate body