2016-04-30 6 views
0

画像があります。私は の上でそれを回転させるいくつかのコードを書いていますが、setInterval()関数は機能していません。setInterval()は回転していません

なぜ教えてください。

var star = document.getElementById('star'); 
setInterval(function() {star.style.transform = "rotate(10deg)"; },10); 
+3

増分度たび。あなたは、以上の上に同じ程度を割り当てています。 –

答えて

1

各関数呼び出しで度の値を増やす必要があります。単純に変数を使用して値を増やす必要があります。あなたの場合、それは常に10degreeにとどまります。

DEMO:あなたが使用することができます

var star = document.getElementById('star'), 
 
    deg = 10; 
 
setInterval(function() { 
 
    star.style.transform = "rotate(" + deg + "deg)"; 
 
    deg = (deg + 10) % 360 
 
}, 10);
#star { 
 
    width: 100px; 
 
    height: 100px; 
 
    background: red; 
 
}
<div id="star"></div>


ここcss animation

@keyframes anim { 
 
    0% { 
 
    transform: rotate(0deg); 
 
    }25% { 
 
    transform: rotate(90deg); 
 
    }50% { 
 
    transform: rotate(180deg); 
 
    }75% { 
 
    transform: rotate(270deg); 
 
    }100% { 
 
    transform: rotate(360deg); 
 
    } 
 
} 
 

 
#star { 
 
    width: 100px; 
 
    height: 100px; 
 
    background: red; 
 
    animation: anim .36s infinite; 
 
}
<div id="star"></div>

+0

最大次数は360です。ただし、無期限に増分しています。 –

+0

@RajaprabhuAravindasamy:更新された.... –

+0

@RajaprabhuAravindasamy「最大度は360」 - 私は同意しません、あなたの主張を裏付けるものはありますか? – James

0

小さなサンプル:

var ready = function() { 
 
    
 
    var 
 
    star = document.getElementById('star'), 
 
    degree = 0; 
 
    
 
    setInterval(function() { 
 
    
 
    /* Every 10ms degree variable increase its value by 1 */ 
 
    star.style.transform = "rotate(" + ++degree +"deg)"; }, 10 
 
); 
 
};
#star { 
 
    
 
    margin-left: 100px; 
 
    margin-top: 40px; 
 
    width: 60px; 
 
    border: 1px solid; 
 
    padding: 20px; 
 
}
<body onload="ready()"> 
 
    <div id="star"> 
 
    <h1>Yay!</h1> 
 
    </div> 
 
</body>

+0

ありがとうございます!動作しているコード:) – Artdark92

関連する問題