Прозрачность

Очень мощным средством оживления обьектов сайта является манипулирование с прозрачностью. Я уже немного писал об этом в конце главы про Основы DHTML. Я не буду повторять то, что там написано, и советую еще раз внимательно прочитать эту главу. Здесь же я покажу как это можно использовать для оживления сайта. С учетом того, что прозрачность задается по разному в стандартных браузерах и в Экплорере, этот параметр вообще удобно задавать только в коде Javascript. Более того, его могут иметь все объекты, не только div. Если манипулировать с картинками, то можно менять прозрачность картинок, но в более сложном случае лучше все объекты помещать в контейнеры div и менять прозрачность этих контейнеров. Однако, в данной статье я рассмотрю очень простой случай плавного перехода от одной картинки к другой и поэтому буду менять прозрачность самих картинок. Здесь я опять покажу очень простой пример, но его можно постепенно модифицировать, усложнять и комбинировать с другими примерами.

Идея примера следующая. Размещаем две картинки в одном и том же месте, одну над другой. Но сразу делаем так, что нижняя картинка показывается, а верхняя прозрачная, как стекло. После клика на кнопке постепенно меняем параметр прозрачности от 0 до 1, и вот уже верхняя картинка видна, а нижняя под ней, естественно, не видна, хотя она вовсе не прозрачная. А в процессе перехода видны обе в смешанном состоянии. Как обычно, я даю полный код сайта и потом его объясню. Этот текст можно скопировать в файл с расширением htm и запустить на исполнение, он будет работать. Для лучшего понимания моих комментариев советую это проделать. Для этого кликаете мышкой в окне редактора, потом нажимаете клавиши Ctrl+A и сразу после того, как текст посинеет, клавиши Ctrl+С. Текст скопировался в буфер обмена. Открываете редактор Notepad в меню Accessories и нажимаете там клавиши Ctrl+V. При этом разумно курсор поставить в начале окна, он там должен быть автоматически. После того как текст появился в окне, спасаете его через меню редактора или клавишами Ctrl+S.

Этот код может быть чуть сложнее, чем остальные. Здесь в теге javascript уже 5 функций. Первая функция param() имеет стандартное название, а именно, задать стартовые значения параметров. Как я уже говорил, параметр прозрачности проще всего сразу задавать javascipt кодом, вот это и делается раздельно для браузера Интернет Экплорер и для остальных. Вторая функция опять стандартная, она обеспечивает движение или процесс, следующие две функции вызываются по кнопкам. Последняя стандартная. На сайте у нас стандартное окно, а в нем две картинки. Файлы картинок находятся в интернете, поэтому для нормальной работы программы компьютер должен быть подключен в мировую сеть. Я просто взял две фотографии размером 640*480, но вертикальный размер окна всего 100, поэтому вертикальная позиция картинок задана так, чтобы в окно попала самая интересная часть. Ну а все, что за пределами окна не видно. Теги картинок имеют разные значения параметра id и по этим значениям формируется массив переменных-ссылок на параметры style этих картинок. В нашем примере картинок всего две и массив можно было бы не делать, я просто хотел показать как работают с массивом. Когда картинок много, то из них тоже делается массив и адресация картинок происходит несколько иначе. Ну и в конце запускается функция param().

Теперь посмотрим как это работает. Функция param() просто задает стартовые значения параметра прозрачности таким образом, что нижняя картинка видна, верхняя -- нет. И программа спит. Однако по клику на кнопке [Change] запускается функция one(). Она обнуляет счетчик, задает значение паузы, задает направление процесса и запускает функцию move(). Эта функция nm раз увеличивает значение параметра прозрачности второй картинки таким образом, что оно поднимается от 0 до 1. После этого значение паузы делается очень большим и функция перестает работать. Программа опять спит. Но если кликнуть вторую кнопку Restore, то все повторится, только процесс пойдет в обратном направлении. Вот и все. Ясно, что такая программа имеет только учебное (демонстрационное) значение. Но она показывает как делать плавный переход от одной картинки к другой с медленным изменением прозрачности. А это уже можно использовать в анимациях. Более того, такой переход является одним из многих в моей программе Слайд-шоу. Об этом речь будет идти в других статьях.

Автор: Виктор Кон, 9.09.2013

 

счетчик посещений   Виктор Кон на сервере Проза.ру   каталог слайд-шоу

  Внимание! Сайт оптимизирован под браузер Google Chrome.