2013-07-05 50 views
2

我正在嘗試使用以下代碼動畫元素的不透明度;動畫不透明度無法正常工作

window.setInterval(function(){ 
    var target = $('.before'), 
    opacity = target.css('opacity'); 

    target.fadeTo(600, (opacity==1?0:1)) 
    }, 5000); 

當不透明度從1到動畫0它工作正常,但是從0到動畫1時,它不會在動畫所有,它只是瞬間從0變爲1

我曾嘗試使用fadeTo()animate()toggle()但無效的各種方法

使用fadeToggle()按預期工作,但不是真正的選擇,因爲它在動畫完成後添加display:none元素與頁面的佈局。

編輯

解決:

的網站,我就被使用jQuery 1.4.4,升級到1.10.1工作修復了這個問題。

+0

嗯...它可能是一個瀏覽器問題?在Chrome中嘗試了你的代碼,它運行正常:http://jsbin.com/epehul/2/edit – Tallmaris

回答

0

嘗試使用window.setInterval(function(){ $('.before').animate($('.before').css('opacity', 1?0:1), 1000); }, 5000);

+0

將.val()添加到最後似乎阻止了動畫完全工作。 – user2413345

+0

也許嘗試更新的代碼 –

0

你打算什麼瀏覽器支持?這可以用css輕鬆完成 - 只需用jQuery添加/刪除類,然後使用css轉換來處理不透明度漸變。不透明度開/關仍然可以在IE8中運行,但它不會褪色。

或者,您可以使用fadeToggle並添加'display:block!important;' (或者你需要的任何顯示)給元素。