jquery safari只有opacity

时间:2011-03-25 09:44:28

标签: jquery css safari opacity

#div1{ 
filter:alpha(opacity=85); 
-moz-opacity:0.85; 
-khtml-opacity:0.85; 
opacity: 0.85;
}

#div1:hover{ 
filter:alpha(opacity=100); 
-moz-opacity:1; 
-khtml-opacity:1; 
opacity: 1;
}

html>#div1.safarihack{
opacity: 1; 
}

以上所有都是按预期进行的。 Safari总是将其不透明度设置为完整,因为如果没有,它将无法正确呈现。但是,我还有一个jquery事件,当点击这个div时,不透明度会渐变为0,我需要它为所有浏览器淡出为0(fadeout不是一个选项)。

然后更改div的html,我需要所有浏览器的不透明度返回到0.85或85,但safari除外,它需要返回到100。

我如何在jquery中定位?有什么方法我可以把

html>#div1.safarihack {opacity: 1; }

进入这个?

$(this).html(nextHtml).animate({'opacity':'0.85',
                                              'filter':'alpha(opacity=85)', 
                                              '-moz-opacity':'0.85',
                                              '-khtml-opacity':'0.85',
                                              }, 500);

* 请注意(this)=#div1 **

4 个答案:

答案 0 :(得分:0)

我认为你会发现这个主题很有趣:Distinguish Chrome from Safari using jQuery.browser

答案 1 :(得分:0)

尝试

$(this).html(nextHtml).animate({opacity:($.browser.safari)?1:.85});

请注意,$.browser.safari已弃用。

也没有必要在jQuery中使用所有这些不透明度属性,jQuery会将“不透明度”转换为当前浏览器支持的属性。

答案 2 :(得分:0)

答案 3 :(得分:0)

this demo 可以帮助解决您的问题吗?我降低了不透明度,使演示中的悬停更明显。

修改:Updated demo ,其中文字不透明度会发生变化。似乎在Safari5中正常工作

我不太了解Safari不透明度的问题,因为我在Safari5,Chrome12或Firefox4中运行演示时没有遇到任何问题。