За последние 24 часа нас посетили 16999 программистов и 1300 роботов. Сейчас ищут 1576 программистов ...

Придание прозрачьности определенному цвету

Тема в разделе "JavaScript и AJAX", создана пользователем xak2, 7 фев 2007.

  1. xak2

    xak2 Guest

    Точно знаю такое есть. Например вот http://file.lv. Там где картинки навигации у каждой картинки PNG фон серый и после обработки он становится прозрачным. http://mixfm.lv тоже самое где прямой эфир 2 значка, винамп и медиа плеер. Искал в исходниках так и не нашол. Уже давно задавал этот вопрос но ответа не получил.
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    FIXPNG

    Код (Text):
    1.  
    2. function isIE5() { return (navigator.userAgent.indexOf("MSIE 5") > -1); }
    3. function isIE6() { return ((navigator.userAgent.indexOf("MSIE 6") > -1) && (navigator.userAgent.indexOf("Opera") == -1)); }
    4. function isIE() { return (isIE5() || isIE6());}
    5.  
    6. function fixpng()
    7. {
    8. for (var i = 0; i < document.images.length; i++) {
    9. var img = document.images[i];
    10. imgSrc = img.src;
    11. if (imgSrc.substr(imgSrc.length-3).toLowerCase() == "png") {
    12. var w, h;
    13. w = img.width, h = img.height;
    14. img.src = "null.gif";
    15. img.width = w, img.height = h;
    16. img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + imgSrc + "\', sizingMethod='scale');";
    17. }
    18. }
    19. }
    20. var isIE = isIE();
    21. if ( isIE ) window.attachEvent("onload", fixpng);
    НО ЗЛОУПОТРЕБЛЯТЬ этим не надо.
     
  3. xak2

    xak2 Guest

    А не могбы ты расказать как это задействовать и только ли на PNG это работате или на gif тоже?
     
  4. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    подключить в файл.

    именно этот код работает только с png.
     
  5. xak2

    xak2 Guest

    Я совсем не понял как, раз это функция то надоже какоето условие использовать <img src="..." onLoad=""> и т.д. Я в JS и AJAX слаб.
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    xak2

    if ( isIE ) window.attachEvent("onload", fixpng);

    как тока страница загрузится функция пробежится по всем картинкам. найдет в них PNG и перезегрузит грамотно.
     
  7. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Гы гы :) Мой сайтег (который первый) :D
    Да, есть там такое. Подключаешь фаил с функцией и делаешь её вызов при onload, как сказано выше. Но есть проблема, если у вас какой-нить элемент будет долго грузиться, то onload может вообще не сработать, в итоге будет карявый PNG. Так что надо юзать осторожно. Можно конечно и наплевать на IE6 и ниже, щас IE7 ставиться при апдейтах принудительно, посему у многих он уже есть, а там полупрозрачные PNG нормально работают.
    тобишь для IE6 и ниже юзать скрипт, у остальных будет и так работать и рекомендовать сайт к просмотру в IE7-й версии :)
     
  8. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    так хрен мы тут распинаемся, а ты молчишь!
    =)
     
  9. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Да я только тему заметил, яж не сижу тут весь день, работать тоже надо :D
     
  10. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    Psih

    при апдейтах лицензионных версий винды:)
    хорошо хоть, что сперва проверяется лицензионность, а потом устанавливается обновление. а то вот медиа плейер - тот сперва 11-й ставится, а потом пишет, что ваша винда типа не лицензионная и работать я не буду)
     
  11. xak2

    xak2 Guest

    Psih
    Спасибо за такой сайтик конечьно. И все работатет. Но все картинки ПНГ у меня покрываются не найденым изображением null.gif, я его создал 1px x 1px с точькой прозрачьности но тогда вся картинка ПНГ покрывается белым слоем густого тумана.
     
  12. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    может ты просто не туда gif положил или с путями напутал немного? Проверь, потому что картинки PNG должны обрести полупрозрачность нормальную...
     
  13. xak2

    xak2 Guest

    Нет нет img.src = 'null.gif' - естественно и лежит он у меня в папке с скриптом, когда его нет стоит крестик на картинке а когда есть все белым покрывается.
     
  14. xak2

    xak2 Guest

    Все, спасибо, разобрался, я просто при сохранении GIF не придал ему прозрачьность, теперь все чики-пики.
    В каком смысле? Если сделать что-бы юзер не видел как загружается сайт, т.е. не видилбы сайт в PNG до того как он обработается фильтром, то можно было-бы сделать сайт во много раз по качеству привышающий GIF. Ведь у PNG куда больше возможностей. Да и если пользоваться одно программой всегда, Macromedia Fireworks например, то сразу можно хранить все PNG с историей, и в случаи редактирования не прийдется мучатся, или хранить 2 файла, исходник и нормальную картинку. А чтоб они этого не видели, вместо загрузки сайта поставить статус загрузки например.
     
  15. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    xak2

    ага, тока вот белый экран до загрузки ВСЕХ картинок воспринимается как ожидание ответа сервера. соответственно, при малейших лагах большинство подумает, чё за нах, и логичной реакцией будет Alt + F4
     
  16. Anonymous

    Anonymous Guest

    Имхо, тут один ответ —
    PNG для элементов основной верстки использовать не стоит.
     
  17. xak2

    xak2 Guest

    DarkElf
     
  18. xak2

    xak2 Guest

    Почему?
     
  19. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    - деточка, не трогай чайник!!
    - почему?
    - он горячий!
    - А-А-А-А-А-А-А! Он же горячий!
     
  20. xak2

    xak2 Guest

    440Hz
    Понял...

    Но всеже, я думаю Flash и PNG в скоре вытеснят GIF.
     
  21. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    может, но к программированию это мало как относится. скорей к верстакам, а там может и TIFF прийти, кто его знает...