jquery fadeIn () во всех браузерах, кроме IE - PullRequest
0 голосов
/ 02 февраля 2012

Я теряю текст, когда страница загружается с помощью jQuery. Переход к непрозрачности для текста в IE 8 и менее выглядит не очень плавно, поэтому необходимо удалить его.

Есть ли способ переопределить fadeIn() только для IE8 и менее. Могу ли я использовать unbind.('fadeIn') со следующим файлом js:

<!--[if lte IE 8]><script type="text/javascript" src="js/lte-ie8.js"></script><![endif]-->

Ответы [ 3 ]

2 голосов
/ 02 февраля 2012

Внутри вашего специфичного для IE файла JS вы можете перезаписать функции fadeIn и fadeOut следующим образом:

$.fn.fadeOut = function () {
    return this.hide();
};
$.fn.fadeIn = function () {
    return this.show();
};

Это приведет к тому, что вызовы .fadeIn() и .fadeOut() будут обрабатываться функциями .show() и .hide(). Это также сохранит цепную способность без изменений.

Вот демоверсия: http://jsfiddle.net/ttGk5/

0 голосов
/ 02 февраля 2012

Вам нужно будет переопределить функции, а не просто отсоединять их. Unbind также удаляет событие, которое также было связано с элементом, поэтому оно не будет иметь ожидаемого эффекта здесь.

jQuery: переопределить эффекты затухания / затухания

Возможно, вы захотите переопределить fadeIn () и fadeOut () для псевдонимов show () и hide ().

0 голосов
/ 02 февраля 2012

Вы можете проверить useragent в javascript следующим образом:

if (navigator.userAgent.match(/\bMSIE\b/)) {

}
...