【发布时间】:2012-11-24 05:03:03
【问题描述】:
我正在尝试在基于 Accordion Image Menu 的 jquery 图像滑块/手风琴上模拟黑色轮廓到白色文本。在 IE 9 出现之前,这非常有效。我正在使用 Jquery fadeTo() 来处理不透明度。最初我使用的是 animate() 但我遇到了同样的麻烦。每当文本淡入或淡出时,我都会在 span 元素所在的位置出现一个黑框。当fadeTo() 开始时,黑框似乎很快出现,然后以闪光类型的效果消失,然后在fadeTo() 结束时再次消失。 IE 7 或 8 不会出现这种情况。在那里看起来很棒。
在我只有 IE 的样式表中
#acc-menu1 a span.left-arrow{
position: absolute;
left: -5px;
bottom: 0;
color: #FFF;
font-size: 3em;
margin-right: 25px;
}
#acc-menu1 a span{
font-family: "Helvetica",sans-serif;
bottom:0;
left:20px;
width:100%;
display:block;
padding:2px 5px 5px;
position:absolute;
font-size:1.8em;
font-weight: bold;
height:25px;
line-height:18px;
color: #FFF;
/*filter: progid:DXImageTransform.Microsoft.DropShadow(offX=1,offY=1,color=000000);*/
filter: progid:DXImageTransform.Microsoft.Shadow(direction=225,strength=2,color=black);
}
HTML 看起来像这样...
<div id="acc-menu1">
<a href="#"><span>Link Name</span><img title="title" src="image source" alt="" width="w" height="h" /><span class="left-arrow">«</span></a>
... 3 more anchor tags ...
</div>
链接名称根据打开的图像淡入和淡出。
这里是相关的js
var title = $('span',this);
var arrow = $('.left-arrow',this);
if (_this.menuSettings.fadeInTitle != null && title.length > 0) {
if (itemDim == _this.menuSettings.openDim) {
if (_this.menuSettings.fadeInTitle){
title.fadeTo('slow', 1);
arrow.fadeTo('fast', 0);
}else {
title.fadeTo('slow', 0);
arrow.fadeTo('fast', 1);
}
} else {
if (_this.menuSettings.fadeInTitle){
title.fadeTo('slow', 0);
arrow.fadeTo('fast', 1);
}else {
title.fadeTo('slow', 1);
arrow.fadeTo('fast', 0);
}
}
}
我正在尽我所能来适应 IE,但它变得令人沮丧。任何建议将不胜感激。
谢谢,
标记
【问题讨论】:
-
IE9 支持
opacityCSS3 样式,但其他两个不支持,jQuery 使用filter规则模拟它。显然,两个过滤器一起工作比一个过滤器和一个不透明度变化更好。在淡入淡出期间禁用阴影效果是否可以接受? -
这完全可以接受。我尝试在 animate() 函数的开头添加
$('#acc-menu1 a span').css({"filter": 'none'});并在结尾$('#acc-menu1 a span').css({"filter": 'progid:DXImageTransform.Microsoft.Shadow(direction=225,strength=2,color=#000000'});重新应用过滤器,但这似乎没有什么区别。弗雷德里克,这是否接近您的建议? -
当然。尽管
css()似乎不支持可靠地添加filter规则,但也许这就是它不起作用的原因。 A good workaround is to use a class instead.
标签: jquery css internet-explorer