這是你的問題
問題1:如果定義使用
你的CSS
然後document.getElementById().style.opacity
是空的,因爲它從內樣式需要即<div id="movies" style="opacity: 0.0">
問題2: movies.style.opacity = movies.style.opacity + 0.1; movies.style.opacity返回一個字符串,所以你基本上是附加字符串結果0.10.1等等。你需要做parseFloat!所附的小提琴將解決您的問題
代碼:
var moviesOp = document.getElementById('movies').style.opacity;
function apparence(){
console.log('interval called with op = ' + moviesOp);
if(moviesOp < 1.0){
moviesOp = parseFloat(moviesOp, 10) + 0.1;
} else {
clearInterval(timer);
}
}
var timer = setInterval(apparence, 1000);
<div id="movies" style="opacity: 0.0">
JSBin With Inline Style
如果你想在CSS中使用,而不是內聯再使用的getComputedStyle。這個我試過,並可作爲u想
var movies = document.getElementById('movies');
function apparence(){
var moviesOp = getComputedStyle(movies).getPropertyValue('opacity');
console.log('interval called with op = ' + moviesOp);
if(moviesOp < 1.0){
movies.style.opacity = parseFloat(moviesOp, 10) + 0.1;
} else {
clearInterval(timer);
}
}
var timer = setInterval(apparence, 1000);
Non Inline jsBin
@SethMcClaine的document.ready是jQuery的。 – Barmar
謝謝@Barmar! –
@Tomas piaggio - 接受答案,如果你發現它的權利 – wallop