温度条件

时间:2014-06-18 16:49:33

标签: javascript jquery

我对这些情况有疑问。 我希望身体根据温度改变颜色。 它效果很好,但它只是被认为是'#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);
}   

4 个答案:

答案 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