IEでjQueryのフェードインフェードアウト+?
質問
Iは、IE(6 + 7 + 8)で正しく動作するようにフェードインとjQueryのフェードアウト効果をgtettingの問題を有しています。スクリプトはFFとサファリ(うまくフェージング)で正常に動作しますが、IEでそれだけで/非表示になりません示して - 。何のフェージング効果を全く
任意のアイデア?
$(".myclass ul li:eq(" + $(this).attr("href") + ")").fadeIn(5000);
それは単にUL李長の位置を表す数値を保持してきていることhref属性ます。
解決
私は同じ問題を持っていた(Q8-コーダ上記により投稿されたリンクから)以下のコードを使用していました。それはうまく動作しますが、私はまだいくつかの問題がありました。私はIE8で動作しませんでした相対的または絶対位置を持つ子どもを持っていたコンテナ要素にfadeToを使用していることに気づきました。親はフェードだろうが、正または相対位置を持つすべての子要素は、ビューに残るでしょう。それを回避する唯一の方法は、コンテナ要素を選択するようにし、すべてのそれはjQueryのを使用して子供たちをだし、その後fadeToそれらのすべてを適用します。
jQuery.fn.fadeIn = function(speed, callback) {
return this.animate({opacity: 'show'}, speed, function() {
if (jQuery.browser.msie)
this.style.removeAttribute('filter');
if (jQuery.isFunction(callback))
callback();
});
};
jQuery.fn.fadeOut = function(speed, callback) {
return this.animate({opacity: 'hide'}, speed, function() {
if (jQuery.browser.msie)
this.style.removeAttribute('filter');
if (jQuery.isFunction(callback))
callback();
});
};
jQuery.fn.fadeTo = function(speed,to,callback) {
return this.animate({opacity: to}, speed, function() {
if (to == 1 && jQuery.browser.msie)
this.style.removeAttribute('filter');
if (jQuery.isFunction(callback))
callback();
});
};
他のヒント
この回避策のます。
(フェージングが完了した後に)私にとって、
fadeIn()
を使用すると、うまく働いた、私の<div>
がうまくフェードインでしょうIE9上で、それが再びdisapperでしょう。ああます。
この修正は、ここに示したfilter
CSSの値を追加することでした
$("#fadeMeIn").fadeIn("slow");
$("#fadeMeIn").css('filter', 'none');
これを試してください:
$(".myclass ul li:eq(" + $(this).attr("href") + ")").hide().fadeIn(5000);
私はIE8でスクリプトと同様の問題がありました。私はZインデックスを設定した後、問題が消えました。私は、以下の解決策を見つけます。
http://www.kevinleary.net/jquery -fadein-フェードアウト-問題・イン・インターネット・エクスプローラ/ の
所属していません StackOverflow