Библиотека Интернет Индустрии I2R.ru |
|||
|
Основы JavaScript. Дизайн или программирование? Реализация Roll-over
Дизайн или программирование?Итак, веб-страница живёт. Вы нарисовали картинки, подготовили текст, сделали всё, что хотелось, и... заскучали. Почему? Да хотя бы потому, что выстраданная вами страничка никак не откликается на действия владельца, жадно шарящего по ней курсором. Тьфу, почти неприлично получилось... Тем не менее, будем лечить. До того, как начать рассказ о всяких технических фокусах на потеху посетителям и себе, любимым, надо представить, что вообще мы собираемся делать. Язык HTML статичен. Для того, чтобы научить страницу «жить», откликаться на действия пользователя, нужно найти способ ЗАПРОГРАММИРОВАТЬ то или иное её поведение. Умные люди -- не чета нам с вами -- решают эту проблему, вставляя в гипертекст куски программного кода, которые называют СКРИПТАМИ. Вообще говоря, скрипт -- просто маленькая программка, срабатывающая тогда, когда ей скажут, и написана она может быть на одном из немалого количества скриптовых языков. Мы с вами будем говорить только об одном из них -- JavaScript. Синтаксис JavaScript взят из большого и серьёзного языка Java, на котором программируют страшные бородатые дяди девелоперы, получая за это жуткие деньги. Наше с вами дело маленькое, нам надо просто научиться пихать эти самые скрипты куда попало, чтобы всё мигало, крутилось, дёргалось и так ме-едленно меняло цвет фона при загрузке. И тогда кого-нибудь плохого от нашей страницы точно хватит кондратий, а значит, мы с вами хорошие. А если кондратий хватит кого-нибудь хорошего? Нетушки! Этими задачами занимаются специалисты по маркетингу и рекламе, они знают, что такое ЦЕЛЕВАЯ ГРУППА, и отгонят всех хороших от этого мигания и верчения. Ну, что-то я опять запутался: для кого ж мы тогда вообще трудимся? Снова контейнеры...Чтобы вставить кусок кода на языке JavaScript в тело HTML-страницы, нам с вами опять понадобится контейнер. Вот такой: <SCRIPT language="JavaScript"> Единственный параметр, который действительно стоит использовать, называется Теперь о том, где стоит помещать скрипты. В принципе, они могут находиться где угодно, но лучше помещать JavaScript-код в контейнере Roll-overТехническое задание На странице есть кнопка, выполненная в виде изображения в формате GIF. Нужно, чтобы она каким-то образом менялась при наведении на неё курсора. Этот эффект по-английски называется roll-over и в рейтинге популярности эффектов занимает, наверное, первое место. Итак, приступим. Реализация Вставляем первую кнопку в HTML. Код будет выглядеть примерно так: <IMG name="mybutton" src="button1a.gif" width="100" height="50"> Тег Теперь разместим в разделе HEAD следующий блок: <SCRIPT language="JavaScript"> Теперь добавим ещё два параметра в тег onmouseover="ImgOn();" onmouseout="ImgOff();" Напомню, что язык JavaScript чувствителен к регистру, поэтому, если вы в одном месте напишете Осталось сделать последнее: добавить один параметр в тег onload="ImgPreload();" С кодом покончено. Я намеренно не даю детальных инструкций: разумеется, из соображений лёгкого садизма. Но о том, как это всё работает, расскажу подробно. Объяснения ... Расшифровывается всё это следующим образом: функция с именем Зачем нужны параметры, тем более, что в тех трёх функциях, которые мы используем в нашей задаче, их нет? А вот зачем. Представьте себе, что на страничке есть НЕСКОЛЬКО кнопок, для каждой из которых мы хотим сделать свой собственный roll-over. Что же, писать отдельную функцию на каждую кнопку? А если их десяток? Глупости какие. Мы напишем ЕДИНСТВЕННУЮ функцию для каждой операции, и с помощью параметров передадим ей ИМЯ той картинки, над которой в данный момент проходит курсор мыши и которая, соответственно, должна участвовать в создании нужного нам эффекта. Вот и всё. Вернёмся к нашему коду. Функция Зачем нужна эта функция? Дело в том, что загрузка каждого изображения с сервера требует времени, особенно при не очень хорошей связи. Если мы будем тащить вторую картинку с сервера, то курсор уйдёт с кнопки раньше, чем мы увидим какой-то эффект, т. к. графический файл -- каким бы маленьким он не был -- просто не успеет загрузиться. Другое дело, когда требуемая картинка уже находится в памяти: загрузка произойдёт мгновенно. Теперь о самой функции. Запись Обратите внимание на то, какие параметры мы добавили в тег В функции Этим и занимается функция Для примера посмотрите, как организованы roll-overs на главной (или любой другой) странице моего сайта. Это такие маленькие синие точки, возникающие внутри маленьких белых кружочков, когда вы возите мышкой по пунктам меню. Правда, там всё сделано чуть-чуть иначе. ;-)
|
|
2000-2008 г. Все авторские права соблюдены. |
|