<script type="text/javascript">
function load2() {
var objDate2 = new Date();
var hour = objDate2.getHours()
var minute = objDate2.getMinutes()
if (hour === 12 | 24 && minute < 24 && minute >= 12){
document.getElementById("Hour").style.animation = "rotate1 43200s linear 0s infinite normal";
}
else if (hour === 12 | 24 && minute < 36 && minute >= 24){
document.getElementById("Hour").style.animation = "rotate2 43200s linear 0s infinite normal";
}
else{
document.getElementById("Hour").style.animation = "rotate 43200s linear 0s infinite normal";
}
}
</script>
问题是声明小时=== 12 | 24&amp;&amp;分钟&lt; 36&amp;&amp;分钟&gt; = 24被错误地读取。
答案 0 :(得分:2)
|
是一个按位运算符,用于||
逻辑OR运算。
12 | 24 = 28,这在你的代码中没有意义。
替换
if (hour === 12 | 24 && minute < 24 && minute >= 12){
与
if ((hour === 12 || hour === 24) && minute < 24 && minute >= 12){
答案 1 :(得分:2)
您使用按位运算符表示其比较小时为(12 | 24)。使用||用于逻辑比较。
答案 2 :(得分:2)
您使用|
代替||
。 ||
是or operator,|
是bitwise or operator
所以这是编辑过的代码:
function load2() {
var objDate2 = new Date();
var hour = objDate2.getHours()
var minute = objDate2.getMinutes()
if (hour === 12 || 24 && minute < 24 && minute >= 12){
document.getElementById("Hour").style.animation = "rotate1 43200s linear 0s infinite normal";
}
else if (hour === 12 || 24 && minute < 36 && minute >= 24){
document.getElementById("Hour").style.animation = "rotate2 43200s linear 0s infinite normal";
}
else{
document.getElementById("Hour").style.animation = "rotate 43200s linear 0s infinite normal";
}
}