我试图用animate()
来更改的高度和透明度div
。 在div在CSS图像背景。 它工作正常在Firefox和Safari浏览器,但是当我在IE中测试它已经被删除的背景。 这是我的代码:
if (jQuery.support.opacity) {
jQuery('#list_box').animate({opacity: '1',height: '300px',top: newTop},{duration: 300});
} else {
jQuery('#list_box').animate({filter: 'alpha(opacity=100)',height: '300px',top: newTop},{duration: 300});
}
我怎样才能解决这个问题呢?
Answer 1:
我的印象是,jQuery的完成了所有的不透明度支持的事情你下。 这是否工作对于所有浏览器?
$('#list_box').animate({opacity: '1',height: '300px',top: newTop},{duration: 300});
Answer 2:
你并不需要编写IE特殊处理程序,jQuery也都是为你在幕后:
jQuery('#list_box').animate({opacity: '1',height: '300px',top: newTop}, 300);
但是 :如果你有一个24位的透明PNG作为一种正在消失的背景图片,你需要知道,你不能合并filter: alpha
与24位透明PNG(这jQuery的正确使用IE中的幕后) IE7或IE8。 我相信它周围的唯一方法是设置背景颜色(除transparent
的对象),在其上使用filter: alpha
如何测试 :只需设置一个背景颜色#list_box
加入这样的事情你以后你的CSS纯色background-image
声明:
#list_box { background-color: red }
如果背景图像仍然存在,并且您#list_box
正确动画(除丑恶背景)你知道问题是什么,将不得不寻找另一种方式来完成你想要的。
Answer 3:
我一直有同样的问题。 我迷迷糊糊进入了答案,当我设置不透明度为40%:
$('#list_box').stop().animate({opacity: '.4'},"slow");
我注意到,做出的不透明度跳转到100%,然后下降动画到40%。 尤里卡。
所以,现在我明确的不透明度设置为零动画之前:
$('#list_box').css({opacity:0}).stop().animate({opacity: '1'},"slow");
这动画顺利,除了文字还是在IE看起来可怕。
要清理的文字,我从动画后的CSS在IE中删除的不透明度。 这似乎清理文本颇有几分在IE6和IE8。
$('#list_box').css({opacity:0}).stop().animate({opacity: '1'},"slow",function(){
//remove the opacity in IE
jQuery.each(jQuery.browser, function(i) {
if($.browser.msie){
$('#list_box').css({opacity:''});
}
});
});
我在Parallels的Mac上测试它,在IE6和IE8。 一切似乎都在Mac上侧做工精细。
Answer 4:
很(非常)与后期的答案,但因为这是在谷歌的顶部,当我寻找在IE8一个jQuery v有生问题的帮助,我想我会在这里发布。
我的问题是连接到在IE中hasLayout的错误,并加入“显示:直列块”的元件将被褪色固定的问题。
Answer 5:
我有同样的排序这个问题的:
$('#nav li').hover(function() {
$(this).stop().animate({opacity: '0.4'}, 'slow');
},
function() {
$(this).stop().animate({opacity: '1'}, 'slow');
});
我只是增加浮动:左; 到#nav李CSS和固定的问题。
Answer 6:
jQuery中,一旦在div被设置成具有任一不透明度:0(在标准兼容的浏览器)或滤波器:α(不透明度= 0)在IE中,可以只使用
$( '#DIV')动画({不透明度:1},100);
由于jQuery的支持跨浏览器的支持,如果你最终动画通过IE的过滤器,然后有机会的jQuery正试图以支持IE和冲突来当jQuery的触发不透明度变化X2。
我希望这有帮助。 我有同样的问题,再加上IE浏览器不能够处理与在其多个项目一个div堆栈褪色奇怪的问题。
Answer 7:
我注意到这个问题是由位置造成的:容器的亲戚。 如果“开关”,以绝对的不透明度动画会工作。
Answer 8:
从来就有同样的问题与IE 7,问题是不透明度属性后的后逗号
jQuery(this).animate({opacity:1.00,},800);
它一定要是:
jQuery(this).animate({opacity:1.00},800);
Answer 9:
我发现,为我工作的解决方案: position:inline-block;
这适用于衰落的文本不透明度,我还没有使用CSS背景图像尝试过。 也许这有助于反正。
我只是想在报告因特网的小虫子与fadeTo方法Explorer 8中,如果您的“显示”元素设置为“内联”这是行不通的。 我发现,你需要把它放到“inline-block的”,然后它完美的作品。 没有任何关于这个在网络上,这不是我第一次有这样的问题。
不知道这是否是报告这个问题的正确方法,但我敢肯定有人会阅读这篇文章:)
在发现http://www.devcomments.com/IE-8-fadeTo-problem-with-inline-elements-to65024.htm
Answer 10:
我加入一个不透明的背景动画元素解决了这个问题:
CSS:
.overlay {
position: absolute;
top: 0;
left: 0;
width: 195px;
height: 274px;
cursor: pointer;
background: #fff url('../images/common/image_hover.png') 0 0 no-repeat; /* the solution */
opacity: 0;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /* IE8 */
filter: alpha(opacity=0); /* IE6-7 */
zoom: 1;
}
JS:
$('.overlay').hover(
function(){
$(this).animate({'opacity': 0.7}, 300);
},
function(){
$(this).animate({'opacity': 0}, 250);
}
);
适用于IE7-8
希望这会帮助别人;)
Answer 11:
您可以使用fadeTo
来完成你想做的事:
$('#list_box').fadeTo("slow", 0.33);
fadeIn
和fadeOut
做过渡,从0到100%,但上述将让你淡出到任意不透明。
( http://docs.jquery.com/Effects/fadeTo#speedopacitycallback )
Answer 12:
同样的问题与IE8。 加入“显示:直列块”来.hover2在固定的问题。
$(function() {
$(".hover1").css("opacity","1.0"); // Default set opacity to 1.0
// On Mouse over
$(".hover1").hover(
function () {
// SET OPACITY TO 15%
$("span.hover2").stop().animate({opacity: 0.15}, 1200);
},
// ON MOUSE OUT
function () {
// SET OPACITY BACK TO 100%
$("span.hover2").stop().animate({opacity: 1.0}, 1200);
}
);
}
);
Answer 13:
好吧,这可能有助于一点点,我发现在这个网站有关的具体问题的解决方案http://blog.bmn.name/2008/03/jquery-fadeinfadeout-ie-cleartype-glitch/
总之,普遍的问题是在IE不透明度滤光器,在特定情况下有没有什么可以做,思想
但如果你淡入淡出,将防止你只需要去除过滤器属性jQuery函数添加WHE外汇结束的PNG背景图片的问题。 只需使用一个回调函数,这样的事情会做到这一点:
$('#node').fadeOut('slow', function() {<br/>
this.style.removeAttribute('filter');<br/>
});
如果你选择返回多,使用的各项功能,是这样的:
$('.nodes').fadeIn('fast',
function() {
$(this).each (
function(idx,el) {
el.style.removeAttribute('filter');
}
);
}
);
Answer 14:
文章来源: Animate opacity doesn't work properly on IE