IE6 Png Fix с помощью jQuery

Internet Explorer 6-ой версии (лучший Web-браузер 2000 года :) ) входит в состав WindowsXP вплоть до SP3 (возможно и в SP4 ничего не изменится), а это значит что он установлен у большого количества пользователей. А они потециальные посетители Вашего сайта.

 

Как известно, один из главных недостатков этого браузера - он не умеет отображать прозрачность PNG-изображений. Вместо прозрачности он отображает красивую серую область. Существует несколько способов справиться с этой напастью. Сегодня мы рассмотрим один из самых простых способов. При помощи известной JavaScript библиотеки jQuery.

 

Предположим, что для JavaScript'ов на Вашем сервере отведена папка js в корне сайта, а изображения в папке images, также в корне сайта.

 

Если у Вас на сайте не установлена библиотека jQuery - устанавливаем ее. Для этого нужно скачать с сайта http://jquery.com последнюю версию и скопировать в вышеуказанную папку js.
Между тегами <head> и </head> на странице сайта добавим следующий код:

<script type="text/javascript" src="js/jquery.js"></script>

 

В папку images поместим gif-изображение состоящего из 1 прозрачного пиксела. Прозрачность gif-изображений Internet Explorer 6 поддерживает :). Имя файла с изображением blank.gif. Скачать можно отсюда.

 

Теперь в папке js создадим файл с именем jqie6pngfix.js следующего соделжания:

// *********************************************
// * jQuery IE6 PNG fix by Alex
// * JavaScript
// * Alex & Natty studio
// * http://portal30.ru
// *
// * Alex & Natty Studio 2010
// *********************************************

/*
* Фиксим PNG для конкретного изображения
*/
function fixPng(png) {
    // get src
    var src = png.src;
    // set width and height
    if (!png.style.width) { png.style.width = $(png).width(); }
    if (!png.style.height) { png.style.height = $(png).height(); }
    // replace by blank image
    png.onload = function() { };
    png.src = blank.src;
    // set filter (display original image)
    png.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
}


/*
*
*/
$(document).ready(function() {
    // =========== Фиксим PNG ==============
    var badBrowser = (/MSIE ((5\.5)|6)/.test(navigator.userAgent) && navigator.platform == "Win32");
    if (badBrowser) {
        // get all pngs on page
        $('img[src$=.png]').each(function() {
        if (!this.complete) {
            this.onload = function() { fixPng(this) };
    } else {
        fixPng(this);
    }
    });
    }
// ========= Конец: Фиксим PNG ==============

});

 

Между тегами <head> и </head>, после добаленной выше строки, подключающей jQuery, на странице сайта добавим следующий код:

<script type="text/javascript" src="js/jqie6pngfix.js"></script>

 

Вот и все.

 
Автор: Alex
Опубликовано: Alex
Комментарии: (0)
Рейтинги:  
0

Теги:

Ie6,   Ie6 Png Fix,   Internet Explorer,   Jquery

Комментарии:


Комментарии отсутствуют

Оставить комментарий:

* Просьба все технические вопросы, которые могут потребовать обсуждения, задавать на форуме.
** все некорректные и рекламные посты будут удаляться, ненормативная лексика и оскорбительные высказывания запрещаются.

* Для редактирования комментария осталось 15 минут