Шаг 34.
Основы CSS.
Способы доступа к статическим фильтрам

    На этом шаге мы рассмотрим способы доступа к статическим фильтрам.

    Непосредственный доступ к статическим фильтрам производится двумя способами:

    Следующий пример демонстрирует первый способ:

<HTML>
<HEAD>
<TITLE>Пример фильтра</TITLE>
<STYLE TYPE="text/css"> 
<!--
.xr {FILTER: Xray();} 
-->
</STYLE> 
</HEAD> 
<BODY> 
<IMG SRC="ris34_1.jpgf" CLASS="xr">
</BODY> 
</HTML>

    Результат применения фильтра изображен на рисунке 2, а рисунок 1 содержит исходное изображение.


Рис.1. Исходное изображение


Рис.2. Результат использования фильтра

    Результатом просмотра данного HTML-документа в браузере станет отображение содержимого файла ris34_1.jpg (рисунок 2) таким образом, будто он сделан с помощью рентгеновского аппарата. Прокомментируем приведенный текст. В CSS-таблице мы определяем стилевой класс xr, в содержании которого всего одна строка FILTER: Xray(), которая объявляет сам фильтр рентгеновского эффекта xray. Далее, в самом документе изображение ris34_1.jpg подводится под класс xr.

    Важно отметить, что в классе xr может находиться несколько объявлений фильтров. Таким образом, появляется возможность применять к одному изображению несколько графических фильтров, так, например, если бы класс xr выглядел следующим образом:

    xr {FILTER: FlipV() Xray();}

то изображение ris34_1.jpg подверглось бы не только вышеописанным изменениям, но и было бы перевернуто вверх ногами, в результате применения соответствующего фильтра FlipV.

    Данные преобразования можно было бы сделать и без участия CSS-таблиц, а реализовав, например, скрипт на языке JavaScript. Следующий пример демонстрирует второй способ доступа к статическим графическим фильтрам в HTML:

<HTML>
<HEAD>
<SCRIPT LANGUAGE="Javascript"> 
<!-- 
function change() 
{ 
  document.all.image_1.style.filter="xray()"; 
} 
//--> 
</SCRIPT> 
</HEAD> 
<BODY ONLOAD="change()"> 
<IMG ID="image_1" SRC="ris34_1.jpg" CLASS="xr">
</BODY> 
</HTML>

    Опишем работу этого примера. В заголовке документа между тэгами <HEAD> и </HEAD> определяется скрипт, внутри которого происходит объявление фильтра xray и его привязка к изображению с идентификатором image_1. Непосредственная активизация фильтра происходит при помощи свойства style.filter, принадлежащего каждому объекту, содержащему графическое изображение. В теле тэга <BODY> происходит непосредственный вызов функции change(), при помощи события onLoad(), которое вызывается после загрузки страницы. Теперь непосредственно рассмотрим, как вызывается фильтр в этом примере. Первым делом мы обращаемся к объекту document, который представляет собой Web-страницу. Далее мы обращаемся к коллекции all, дающей нам доступ ко всем следующим объектам в иерархии: ссылкам, блокам текста, изображениям и т.д. Далее мы указываем идентификатор того объекта, к которому будет применено действие. Теперь осталось определить фильтр, что и происходит при использовании конструкции style.filter. Преимуществ у такого подхода несколько. Во-первых, фильтрацию изображения теперь можно проводить не только при загрузке, но и в ответ на какие-то действия пользователя. Например, если убрать из тэга <BODY> событие onLoad() и изменить тэг <IMG> следующим образом

    <IMG ONMOUSEOVER="change()" ID="image_1" SRC="ris34_1.jpg">,

то вышеописанные изменения будут происходить с изображением при наведении на него курсора мыши.

    Следующий рисунок иллюстрирует эту возможность.


Рис.3. Иллюстрация использования фильтра при наведении курсора мыши

    На следующем шаге мы приведем перечень статических фильтров.




Предыдущий шаг Содержание Следующий шаг