#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 **
答案 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中运行演示时没有遇到任何问题。