Фильтры MS добавлены с jquery - PullRequest
7 голосов
/ 12 июля 2011

Я работаю над проектом, и одна из задач - сделать фон статичным и покрыть всю страницу. Об этом я нашел этот урок , используя «Удивительный, простой, прогрессивный путь CSS3». Моя проблема в том, что у меня больше страниц, и у каждой разный фон, поэтому мне нужно поместить фоновое изображение на <body>, например:

<body style="background-image:url(images/mainBg_1.jpg);">

(также стиль css установлен на <body>, а не на "html", как в примере)

Как вы можете видеть по этой ссылке, есть фильтры для IE, например:

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='.**myBackground.jpg**', sizingMethod='scale');
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='**myBackground.jpg**', sizingMethod='scale')";

Проблема в том, что "myBackground.jpg" взят из тега <body>, как я писал выше, поэтому я не могу писать напрямую в css (каждая страница имеет разный фон).

Есть ли способ добавить эти фильтры с помощью jQuery? Я успешно извлек путь изображения из тела, поэтому мне нужно только вставить его в этот код, а затем добавить с помощью jQuery для IE <= 8. </p>

Спасибо за ваши ответы, следуя им, мне удается решить мою проблему. Так что, если кто-то хочет код:

$(function(){       
    var mu = $.browser;
    if (mu.msie && mu.version < 9) {

        var curBg = $('html').attr('style');
        curBg = curBg.split('(');
        curBg = curBg[1].split(')'); 

        $('html').css({
                    "filter" : "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+curBg[0]+"', sizingMethod='scale')",
                    "-ms-filter" : "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+curBg[0]+"', sizingMethod='scale')"
            });         

    }
});

Ответы [ 2 ]

1 голос
/ 12 июля 2011

Протестируйте таким образом
это может быть что-то вроде:

Вы добавляете на свою страницу скрытый img элемент, который содержит желаемое изображение

<img class="myBgImage" src="images/mainBg_1.jpg" style="display:none"/>


Вывозьмите изображение src с этого имени класса изображения

var bgImage = $('img.myBgImage').attr('src');

$('body').append("<style>body{progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+bgImage+"', sizingMethod='scale'); -ms-filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' "+ bgImage +"', sizingMethod='scale')';}</style>");

И вы добавляете к телу исправление css IE, имеющее для BG-изображения VAR с URL-адресом img src.

Просто идея.

0 голосов
/ 12 июля 2011

Вы можете использовать $ ('body'). Css () или $ ('body'). Attr () и изменить атрибут стиля body.

http://api.jquery.com/css/

http://api.jquery.com/attr/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...