Фильтры и транзиции могут быть применены только в IE версии 4 и выше. Синтаксис очень прост:
filter:filtername(parameters) ,где filter - свойство таблицы стилей,
и не ко всем элементам, а только к:
BODY
BUTTON
DIV (с установленной длиной, шириной или
позиционированый с атрибутом absolute)
IMG
INPUT
MARQUEE
SPAN (с установленной длиной, шириной или
позиционированый с атрибутом absolute)
TABLE
TD
TEXTAREA
TFOOT
TH
THEAD
TR
Транзиции - это те же самые фильтры, но изменяющие элемент динамически за определенный промежуток времени. Позволяют создать эффект плавного изменения рисунков, текстов, взаимной смены их, для создания эффектов, подобных показу слайдов и т.д.
Многие фильтры имеют параметры (некоторые из
них - необязательны), некоторые - не имеют, хотя у
всех фильтров (а также транзиций) с помощью
скриптов можно установить общее свойство enabled в
true или false:
<img id=image1 src="sample.jpg" style="filter:blur(strength=50) flipv()">
<SCRIPT>
image1.filters[1].enabled = false;
</SCRIPT>
Транзиции имеют к тому же общее свойство duration
STYLE="FILTER: transitiontype(duration=duration,
transition=transitionshape)"
где
duration - продолжительность эффекта в
сек.мсек (9.050);
transitionshape - целое число от 0 до 23,
определяющее рамки эффекта.
Transition name | Value |
Box in | 0 |
Box out | 1 |
Circle in | 2 |
Circle out | 3 |
Wipe up | 4 |
Wipe down | 5 |
Wipe right | 6 |
Wipe left | 7 |
Vertical blinds | 8 |
Horizontal blinds | 9 |
Checkerboard across | 10 |
Checkerboard down | 11 |
Random dissolve | 12 |
Split vertical in | 13 |
Split vertical out | 14 |
Split horizontal in | 15 |
Split horizontal out | 16 |
Strips left down | 17 |
Strips left up | 18 |
Strips right down | 19 |
Strips right up | 20 |
Random bars horizontal | 21 |
Random bars vertical | 22 |
Random | 23 |
Одновременно может быть применено несколько
фильтров, как в следующем неочевидном примере:
<img id=sample src="sample.jpg"
style="filter:blur(strength=50) flipv()">
Синтаксис:
<img id=sample src=sample.jpg style="filter:alpha(opacity=20)">
Набор filters объекта позволяет изменить то или
иное свойство обьекта посредством JScript
theDiv.filters.item(0).enabled = true;,
то есть здесь мы делаем доступным первый фильтр
объекта с ID theDiv, и обращаться к фильтрам можно
несколькими способами:
<img id=sample src="sample.jpg" style="filter: alpha(opacity=50)
fliph(enabled=0) blur(amount=10); position: relative">
<script language="JavaScript">
function foo()
{
sample.filters.alpha sample.filters["alpha"] sample.filters[0]
}
</SCRIPT>
Точно так же можем изменять то или иное
значение фильтра:
sample.filters.alpha.opacity += 10;
Если мы хотим в run-time добавить
фильтр, то мы знаем, что свойство filter - это строка,
посему следующее выражение допустимо:
mydiv.style.filter = mydiv.style.filter + " fliph()"
Для чего же нужны фильтры? Во-первых, чтобы не писать скрипты. Во-вторых, даже если их приходится писать, маленький скрипт в сочетании с фильтрами предпочтительней большого анимированного gif. Посмотрите пример, спионеренный из MSDN
Итак, какие же бывают фильтры:
Alpha | устанавливает уровень прозрачности |
Blur | создает впечатление движения или высокой скорости |
Chroma | ежу понятно |
Drop Shadow | тень |
FlipHо FlipV |
зеркало горизонтально зеркало вертикально |
Glow | нимбик |
Grayscale | черно-белое изображение |
Invert | обращает цвета, их насыщенность и т.п. по битовой маске в противоположные (негатив, короче) |
Light | освещение объекта |
Mask | прозрачная маска |
Shadow | тоже тень |
Wave | рябь) |
XRay | рентген |
Alpha
{ FILTER: Alpha(Opacity=opacity, FinishOpacity=finishopacity, Style=style, StartX=startX, StartY=startY, FinishX=finishX, FinishY=finishY)"}
opacity - 0-полностью прозрачен, 100 - наоборот;
FinishOpacity-то же самое, но необязательно;
Style - 0 (монотонный фильтр) 1(линейный) 2(радиальный)
3(прямоугольный)
StartX
StartY
FinishX
FinishY-координаты начала и конца применения
фильтра к объекту.
Пример
Blur
{FILTER: Blur(Add=add, Direction=direction, Strength=strength)}
add: 0-начальная картинка НЕ накладывается под
получившуюся, 1 - наоборот
Direction - угол в градусах, куда будет размываться
Strength - на сколько пикселей размывается
Офигительно!
Chroma
{FILTER: Chroma(Color=color)}
DropShadow
{FILTER: DropShadow(Color=color, OffX=offX, OffY=offY, Positive=positive)}
Color-в формате RGB;
x,y - могут быть и отрицательными - направление
тени
Positive (1 или 0) - отбрасывает ли тень на прозрачные
участки
FlipH, FlipV
{FILTER: FlipH}
{FILTER: FlipV}
Glow
{FILTER: Glow(Color=color, Strength=strength)}
Color- в формате RGB;
Strength - сила от 1 до 255
Grayscale
{FILTER: Gray}
Invert
{FILTER: Invert}
Light
{FILTER: Light}
Имеет несколько методов
AddAmbient -добавляет источник света
AddCone -добавляет конический источник света
AddPoint - точечный источник
ChangeColor - изменяет цвет иточника
ChangeStrength - изменяет силу света источника
Clear - уничтожает источник(и)
MoveLight - перемещает источник
Mask
{FILTER: Mask(Color=color)}
Color - RGB
Shadow
{FILTER: Shadow(Color=color, Direction=direction)}
Color-RGB;
Direction- угол в градусах, куда будет падать тень
Wave
{FILTER: Wave(Add=add, Freq=freq, LightStrength=strength, Phase=phase,
Strength=strength)}
Add - 1 или 0 - будет ли подложен исходный обьект под
результрующий;
Freq - частота (количество волн в рамках обьекта);
LightStrenght - сила света (0-100%);
Phase - фаза в градусах (0-360);
Strength - интенсивность эффекта.
XRay
{FILTER: XRay}
1) Duration - см. выше
2) enabled - определяет доступность или
недоступность фильтра
<img id=image1 src="sample.jpg" style="filter:blur(strength=50) flipv()">
<SCRIPT>
image1.filters[1].enabled = false; // disable the flip filter
</SCRIPT>
3) Status - read-only. 0- транзиция остановлена, 1-
назначена, 2 - работает
nStatus = object.filter.Status
4) событие Onfilterchange