2011-03-25 61 views
0
#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(淡出不是选项)。jquery safari opacity only

的div HTML然后改变了,我需要的不透明度为所有的浏览器返回到0.85或85,除了野生动物园,这需要回到100

我怎么能在这个目标jquery?有什么方法我可以把

​​

成这个吗?

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

* 注意,(这)=#DIV1 **

回答

0

尝试

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

$.browser.safari已被弃用。

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

0

是否this demo帮助你的问题吗?我降低了不透明度,使演示的悬停更加明显。

编辑:Updated demo其中的文字不透明度发生变化。似乎在Safari5

工作确定我真的不明白的Safari不透明的问题,因为我没有看到运行在Safari5,Chrome12或Firefox4演示的任何问题。

+0

遗憾。它是不正确的文本的不透明度。 – callumander 2011-03-25 11:21:07

+0

你的代码和我正在尝试的一样。如果我在Safari浏览器中查看过演示程序,它可以工作,如果我查看了它,它就没有了。 iv现在以另一种方式解决它,但欢呼你的帮助,但仍不知道为什么它没有工作。 – callumander 2011-03-25 15:14:54