2011-06-10 44 views
1

我知道這個問題已被問到,但答案總是,animate()處理跨瀏覽器差異之間不透明度:0和過濾器:alpha(不透明度= 0)不是所以在這種情況下.. 。jquery動畫不透明不工作跨瀏覽器

我有這個div

.entry 
{ 
opacity:0.4; 
filter:alpha(opacity=0); 
} 

和這個jQuery

<script> 
$(document).ready(function(){ 
    setTimeout(function(){ 
    $('.entry').animate({opacity:'1'},700); 
    },1000); 
}); 
</script> 

文本在I.E中保持不可見alpha(不透明度= 0),在Chrome中工作,並且Firefox 可以在sample domain上查看。

編輯 我已經試過報價和unquoting不透明度:「1」,不利於

淡入()不是一種選擇,因爲我需要保持在div相同的高度,我不能更改CSS太要保持相同的高度,因爲它弄亂了我的手風琴菜單。

由於這是結束了工作X瀏覽器

<script> 
$(document).ready(function(){ 
    $('.entry').css({'opacity':0, 'filter':'alpha(opacity=0)'}); 
    setTimeout(function(){ 
    $('.entry').animate({opacity:'1'},700); 
    },1000); 
}); 
</script> 

不知道爲什麼你必須使用引號'opacity':0, 'filter':'alpha(opacity=0)'這樣,但這只是它的工作方式。

也我不得不把它放在一個不同的jQuery高亮效果後,我有一個ID#元素。當它被放置在我的頭文件中的那個函數之前時,它保持那個工作。也許與css()函數有關?

+1

你可以試試'$('。entry')。fadeIn(700);'? – lonesomeday 2011-06-10 17:18:32

+2

取消'1'。這可能是罪魁禍首。 – 2011-06-10 17:19:59

+2

而不是用CSS設置'.entry'的初始不透明度,讓jQuery也處理。當您正確使用它時,jQuery在不透明度問題方面做得非常出色。 – Sparky 2011-06-10 17:25:33

回答

2

對於代碼的一致性和消除跨瀏覽器的問題,還設置你的使用jQuery而不是CSS初始不透明度...

<style> 
    .entry { 
    } 
</style> 

<script> 
$(document).ready(function(){ 
    $('.entry').css({opacity: 0.4}); 
    setTimeout(function(){ 
    $('.entry').animate({opacity: 1},700); 
    },1000); 
}); 
</script> 
+0

這個工作的變化請參閱我的編輯 – 2011-06-13 05:11:36

0

不知道這是怎麼回事老年IE版本一起使用,但它工作在IE9 IE 7模式...

過濾器:α(不透明度=#)爲0-100的IE瀏覽器,所以設置它到1可能只是將其設置爲... 1,當你想它爲100.

我只是試圖讓這個jsFiddle:http://jsfiddle.net/N6GBU/1/,和div文本淡入(在IE9無論如何)...我只是添加過濾器到動畫。我不知道這是否是你追求的究竟,但...