PHP: Полезные приемы
Автор: Антон Орлов, orlovs.pp.ru

  Главная   Учебник   Статьи   FAQ   Книги   Ссылки  

Приложение 3. На сайте - как в "Винде"

Один из основных законов так называемого "usability" - принципов создания удобных вещей гласит, что интерфейс обьекта, с которым работает человек, должен быть ему знакомым. В применении к web-сайтам принцип сохраняется - зайдя на web-страницу, посетитель не должен гадать и думать, для чего предназначен тот или иной ее эле-мент. Достигнуть этого можно с помощью похожести интерфейса web-страницы на какой-нибудь другой, уже привычный пользовате-лю. Например, на интерфейс операционной системы.

1.

Первый, банальный прием напрашивается сразу - можно поставить в качестве ссылок такие же иконки файлов, как и соответствующие их формату в интерфейсе операционной системы - например, всем зна-комое изображение сжатых струбциной ящиков от стола для архива формата Zip или для документов Word - картинку листа бумаги с эмб-лемой Word'а. Тогда посетитель, зайдя на страницу, сразу увидит знакомые значки и ему будет проще ориентироваться на ней - то, что предназначено для загрузки с сайта, будет видно сразу (рис.17.1).


Рис.17.1. Сразу ясно, что надо скачивать...

2.

Однако просто использовать в качестве ссылок иконки архивов - это ведь банально и неинтересно… Да и полной идентичности с ин-терфейсом операционной системы достигнуть нельзя, да и незачем - при работе с браузерами пользователи уже давно привыкли к одинар-ному щелчку для доступа к данным, а не к двойному.

Однако все, работающие с Windows 98 и более старшими версия-ми этой операционной системы, помнят о возможности настроить вид папок так, что при наведении курсора иконка файла будет затеняться, а при нажатии в этот момент левой кнопки мыши файл откроется (рис.17.2). Так, может быть, сделать иконки файлов, предназначенных для загрузки, такими же затемняющимися, как и в Windows? Пред-ставьте себе - навел посетитель курсор мыши на значок, а он стал темным, увел - он стал обычным.


Рис.17.2. Затенение иконки под курсором

Так почему бы не реализовать такой же эффект на web-странице, содержащей ссылки на архивы или другие файлы, подлежащие за-грузке или открытию?

Но как это сделать?

3.

Можно, разумеется, использовать традиционный метод - исполь-зовать два варианта значка (обычный и затемненный) и с помощью небольшого скрипта организовать их замену друг на друга при наве-дении и уходе курсора мыши. Однако такое устройство страницы приведет к тому, что на страницу придется поместить еще и сценарий для предварительной загрузки картинок (иначе соответствующие ва-рианты значков будут загружаться лишь при наведении мыши, то есть - не сразу). Кроме того, при сохранении web-страницы на локальном диске посетителя иконки, загружаемые в сценариях, не копируются на винчестер, и в итоге во время работы пользователя с сохраненной страницей при наведении курсора мыши иконки будут заменяться на белые "дырки", что, ясно, не есть хорошо.

Однако для достижения требуемого эффекта вполне можно обой-тись и одним изображением, если использовать так называемые "фильтры" - воспринимаемые браузером команды, позволяющие осо-бым образом преобразовать изображение или текст, к которым они применяются.

Если вы пожелаете использовать на web-странице фильтры для достижения эффекта затемнения иконок при наведении на них курсо-ра, то в начало страницы, в раздел "<head>" следует добавить не-большой скрипт, разобранный ниже по строчкам. Синтаксис Javascript во многом похож на синтаксис PHP, так что изучение данного сцена-рия вряд ли станет для вас проблемой.

Начало сценария:

<script language="JavaScript1.2">

Для экономии места используется одна функция, которой сообща-ется имя графического обьекта на web-странице, на котором исполь-зуется затемнение, и требуемое действие - либо применение этого за-темнения, либо его отмена.

function g(c,w)
{
Если нужно "затемнить" картинку:
if (w==0)

...применяем фильтр "light", который окрашивает картинку в опре-деленный цвет...

{
c.style.filter="light";

...и задаем в качестве затемняющего цвета - темно-синий оттенок. Эта команда используется лишь в том случае, когда браузер может работать с фильтрами - именно поэтому она помещена после операто-ра if, проверяющего, существует ли для браузера фильтр light.

if (c.filters.light)
{
c.filters.light.addAmbient(130,130,210,120)
}

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

}
else
{
c.style.filter=0
}
Вот и все:
}
</script>

4.

Вышеописанный сценарий будет "обслуживать" все картинки на странице, для которых вы пожелаете применить эффект "затемнения". Ну, а чтобы это происходило, - в тэг каждой картинки, для которой требуется "затемнение", следует вставить команды "onMouseover="g(this,0)" onMouseout="g(this,1)", на-пример:

<IMG src="z.gif" border=0 height=30 width=30 on-Mouseover="g(this,0)" onMouseout="g(this,1)">

В результате при наведении курсора мыши на картинку она будет затемняться - как на рис.17.3.


Рис.17.3. Затенение иконки под курсором. Но уже на сайте, а не на Рабочем столе.

К сожалению, данный прием работает только в браузере Microsoft Internet Explorer версии 5.0 и старше. Пользователи же остальных браузеров увидят простую непереливающуюся картинку и ничего больше.

5.

Примеры сценария, а также иконки архивов вы можете взять с адресов http://www.harchikov.ru, http://antorlov.chat.ru, http://karamurza.chat.ru. Просто копируйте картинки и переписывайте сценарий из "Источника HTML", а затем размещайте на своем сайте.

Hosted by uCoz