在IE8浏览器中,jQuery动画不透明度(opacity)会遇到一些特殊问题,主要是因为IE8及更早版本对CSS opacity属性的支持方式与其他现代浏览器不同。
filter: alpha(opacity=x)
而非标准的opacity
属性// 使用jQuery内置的fade方法
$('#element').fadeIn('slow');
$('#element').fadeOut('slow');
$('#element').animate({
opacity: 0.5
}, {
duration: 500,
step: function(now, fx) {
if ($.browser.msie && parseInt($.browser.version, 10) <= 8) {
this.style.filter = 'alpha(opacity=' + now * 100 + ')';
} else {
this.style.opacity = now;
}
}
});
if (!Modernizr.opacity) {
// IE8及以下浏览器的处理
$.fn.animateOpacity = function(to, duration, callback) {
return this.each(function() {
var elem = $(this);
elem.stop().animate({ opacity: to }, {
duration: duration,
step: function(now) {
elem[0].style.filter = 'alpha(opacity=' + (now * 100) + ')';
},
complete: callback || function() {}
});
});
};
}
这些解决方案适用于:
没有搜到相关的沙龙