DD_belatedPNG – еще один способ решения проблем с полупрозрачными PNG в IE6.
В DD_belatedPNG позволяет использовать background-position, background-repeat и :hover. Ссылки и элементы форм в блоке с полупрозрачным фоном остаются кликабельны.
Использовать скрипт очень просто:
- Скачайте js файл.
- Подключите его к странице.
- Укажите какие элементы необходимо исправить.
1 2 3 4 5 6 | <!--[if IE 6]> <script src="DD_belatedPNG.js" type="text/javascript"></script> <script type="text/javascript"> DD_belatedPNG.fix('.png-elem'); </script> <![endif]--> |
Непременно пригодится. В закладки.
значит мистер инкогнито — это у нас Руслан, который ak*uba? =)
Насчёт его ника не в курсе.
Что-то у меня в ie6 не работает демо пример, вы сами хоть проверяли?
http://s55.radikal.ru/i148/0908/09/264b76579163.jpg
Естественно проверял. Посмотрите примеры на официальной странице.
Firefox:
http://i016.radikal.ru/0908/c3/09c5be6ccd45.jpg
Ie6:
http://s50.radikal.ru/i129/0908/a4/e12dd7744986.jpg
Найдите десть отличий! Не работает, если у меня не работает значит у кого еще не будет работать, поэтому решение не подхолдит!
А у вас случаем javascript не отключён?
Всегда работало, а у вас не работает… ну-ну
Но ведь я же не нарисовал скриншоты, может быть проблема в том что у меня стоят и ie6 и ie7, на других компьютерах проверял работает. Так что я не зря говорю!
проблема непосредственно с вашим компом, а не со скриптом.
скрипт работает отлично и лучше чем IE PNG Fix
блин, я вот недавно ридер почистил, из 45 блогов оставил 7. твой в их числе. один из самых полезных блогов которые я когда либо встречал.
у меня как то не сработало.. возможно что то не учла, хотя проверила код.. радует то что падает количество пользователей шестой версии, и думаю что после Винь7 станет их еще меньше.. так что еще годик и редко кого встретишь за шестеркой
Пробовал. Помогает:).Зачёт
пол года как пользуюсь этим скриптом. Нареканий нет. Удобно и эффективно
Иногда возникают проблемы в IE6 когда фон отображается кусками в сложной вёртске, в остальном уже месяца 4 работает нормально у меня.
DD_belatedPNG.fix(‘.png-elem’); — вот это лучше в конец скрипта прописать, поскольку пока скрипт не загрузится, прозрачности не будет.
Да и код страницы красивее.
Вася, вырежи PNG гамму, юзай например TweakPNG или любую другую прогу. Не позорьтесь.
О чем вы, товарищ?
А как же быть когда необходимо создать Rollover?
Фотовая картинка для IE6 прописывается ведь через vmlBg при загрузке страницы.
Есть мысли на этот счет?
Посмотрите на демо страницу, там есть пример с
:hoverу ссылки.я говорю о Rollover, т.е. когда при наведении на картинку (png) появляется другая картинка, которая в одном спрайте, т.е. меняется position-relative.
в Вашем примере (.png-link:hover{background:red} ) background-image заменяется background-color
Сделать спрайт фоном, не подойдёт?
я фоном и делаю.
Только вот position-relative не меняет картинку для ie6 при эффекте ролловера. Насколько я понял, position-relative для ie6 работает только при загрузке страницы и записывает созданный vml через vmlBg
Если спрайт в качестве фона, то тогда нужно менять не позиционирование а расположение фона у ссылки. Добавил в примере спрайт у ссылки, посмотрите.
да уж, опечатался, конечно же я применяю расположение фона background-position
Не могли бы Вы у себя в примере не заменять одну картинку на другую, а менять background-position у фоновой картинки. Т.е. надо вначале сделать спрайт состоящий из двух картинок, и при наведении менять видимую область спрайта.
Вот именно это у меня и не получается сделать.
А в примере именно так и сделано сейчас. Одно фоновое изображение, которое при наведении меняет позицию.
а Вы смотрели свой пример в ie6 ?
Смотрел.
Что-то не так с примером в IE6?
даже на локалке страница грузится минут 5 а то и дольше
У меня грузится в обычном режиме. Посмотрите официальные примеры.
там нет примера со спрайтом и сменой background-position при :hover
Я имел ввиду проверить там скорость загрузки.
в официальных примерах грузится быстро, но там не применяется background-position при :hover, а у Вас сейчас применяется. Возможно в нем причина
Сомневаюсь что проблема в этом, как уже заметил у меня скорость загрузки не изменилась. Думаю если бы скрипт обладал подобным минусом, о нем было бы написано.
А я где то уже читал о том, что скрипт себя некорректно ведет, когда установлено несколько версий ie одновременно. Это как раз мой случай. У Вас сколько IE стоит?
Стоит 8-я версия. Для остальных использую IETester или Virtual PC с ie6.
Подскажите где скачать Virtual PC с ie6
Virtual PC + образы.
Спасибо большое, все работает отлично!
о, спасибо, искал альтернативный метод прозрачности пнгшки!
Все работает. Спасибо. Гораздо лучше, чем IE PNG Fix. Отлично пашет с бэкграундами.
а подскажите, пожалуйста, можно ли прописать скрипту отрисовку пнгхи, которая стоит на бг, например, в a:hover span?
Можно.
Использую DD_belatedPNG для некоторых прозрачных png на сайте http://asia.site-plus.ru. Похоже все работает. Если обновить страницу, то все прозрачные картинки отображаются нормально, но если кликнуть по ссылке еще раз, то прозрачные png, обработанные DD_belatedPNG не отображаются.
Никто не сталкивался с подобной проблемой? Как это решается.
Для примера можно посмотреть страницу: http://asia.site-plus.ru/ru/about/
отлично решение , спасибо
До этого использовал PNG Behavior ….
Есть баг у этого скрипта: создайте несколько одинаковых дивов с одним и тем же классом, и идущими подряд, друг за другом. В класс пропишите фоновое изображение. Подключите скрипт к диву… В итоге получится что фоновое изображение появится только в первом диве, остальные дивы будут пустыми.
Надеюсь этот баг быстро поправят.
Покопав код скрипта понял как этот баг обойти (не исправить, а именно обойти), чтоб всё работало как часы. Вот код с использованием фреймворка jQuery:
$(function(){
var els, a;
els = $(‘*’);
for(a=0; a<els.length; a++) {
DD_belatedPNG.fixPng(els[a]);
}
}
Найден баг: скрипт не срабатывает,если PNGшка назначена фоном для ячейки таблицы.
Пригодилось как раз для моего php сайта. Респект автору.
Скрипт хороший! Спасибо! Только есть одна проблема. Одна png картинка подгружается с помощью скрипта и прозрачной в ie6 становиться ну никак не хочет. Могли бы Вы посоветовать мне решение данной проблемы? Спасибо!