Сообщение от Aetae
|
Обойдуться без %название_свистоперделки%. Естественно с сохранением базового функционала.
|
полностью согласен!
я написал когда-то говнокод, может быть, подойдёт ТС :
помню, что когда тестил его, выглядело сносно - т.е. так же, как и в w3c'шных браузерах.
тут отсутствуют некоторые функции, что делает код незапускаемым ... но Вам ведь понять просто надо, да ?)
// TEXT-SHADOW SUPPORT MODULE
textShadow : {
get: function(element, computed, extra){
return element.style.textShadow;
},
set: function(element, value){
var $el = $(element),
blur,
color,
zIndex = $el.css("zIndex"),
progid = "progid:DXImageTransform.Microsoft.",
filterStr = [],
alpha,
valueStr = value;
value = value.match(/^(\d+)(?:px)? (\d+)(?:px)? (\d+)(?:px)? ([a-z]+|#(?:[a-f0-9]{3}){1,2}|\w+\((?:,?\s*[\d.]{1,3}){3,4}\))$/i);
if (!value) { // некорректная строка text-shadow.
return;
}
blur = parseFloat(value[3]);
value[4] = removeSpaces(value[4]);
color = toHEX(value[4]);
alpha = getAlpha(value[4]);
if (!color) { // передан некорректный цвет
return;
}
element.style.textShadow = valueStr;
if (blur) {
filterStr.push(progid + "Blur(pixelRadius=" + blur.toFixed(1) + ")");
}
if (alpha !== 1.0) {
filterStr.push(progid + "Alpha(opacity=" + alpha * 100 + ")");
}
filterStr = filterStr.join(" ");
if (zIndex === "auto") {
zIndex = 0;
}
$el
.css({"position": "relative", zIndex: zIndex, color: $el.css("color")})
.append('<span class="shadowly"></span>').
find(".shadowly").
html($el.html()).
css({
position: "absolute",
zIndex: zIndex - 1,
left: toFloat(value[1]) - blur + "px",
top: toFloat(value[2]) - blur + "px",
paddingLeft: $el.css("paddingLeft"),
paddingTop: $el.css("paddingTop"),
color: color,
width: "100%",
filter: filterStr
});
}
}
похоже, что был написан как плагин для jQuery
т.е. как хук для $element.css