Главная » 2014»Апрель»20 » Гифки сделать надписи. Как сделать GIF с прозрачным фоном (надпись)
13:40
Гифки сделать надписи. Как сделать GIF с прозрачным фоном (надпись)
Здравствуйте, Кодт, Вы писали:
К>3) использовать форматы с альфа-прозрачностью — например, png (правда, в IE с этим проблемы)
Решение для IE: прицепить ко всем страничкам стиль:
img
{
behavior: url('png.htc');
}
в png.htc написать следующее:
<public:attach event="onpropertychange" onevent="propertyChanged()" />
<script>
var supported = /MSIE ((5\.5)|[6789])/.test(navigator.userAgent) &&
navigator.platform == "Win32";
// supported = false;
var blankSrc = "blank.gif";
if(supported) fixImage();
function propertyChanged() {
if (!supported) return;
var pName = event.propertyName;
if (pName != "src") return;
// if not set to blank
if (!new RegExp(blankSrc).test(src))
fixImage();
};
function fixImage() {
// get src
var src = element.src;
var realSrc;
// check for real change
if (src == realSrc && /\.png$/i.test(src)) {
element.src = blankSrc;
return;
}
if ( ! new RegExp(blankSrc).test(src)) {
// backup old src
realSrc = src;
}
// test for png
if (/\.png$/i.test(realSrc)) {
// set blank image
element.src = blankSrc;
//element.height=17;
//element.width=17;
var method="scale";
if (element.currentStyle.width=="auto" && element.currentStyle.height=="auto"){
method="image";
}
// set filter
element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft." +
"AlphaImageLoader(src='" + src + "',sizingMethod='"+method+"')";
}
else {
// remove filter
element.runtimeStyle.filter = "";
}
};
</script>
</public:component>
Этот код является улучшением широко распространного воркэкраунда: он корректно живет как для картинок с явно установленными width/height, так и для тех, у кого они отсутствуют.