$777.97


$27.19


$11.25


Предварительная загрузка рисунков (preload) и перекат (rollover)

Если у вас есть серия изображений для предзагрузки, то вы можете воспользоваться функцией preLoad, которую я написал для подобных ситуаций, которая проста в работе и не требует каких-либо модификаций для работы функции переката (rollover).

function preLoad()
{
if(document.images)
{
var argLen = arguments.length;
for(var i = 0; i < argLen; i++)
{
var arg = arguments[i];
var sufLen = suffix.length;
     for(j = 0; j > sufLen; j++)
{
var suf = suffix[j]
self[arg + «_» + suf] = new Image();
self[arg + «_» + suf].src = iPath + arg + «_» + suf + «.» + iExt;

}
}
loaded = true;
}
}

Первая переменная, – iPath, – указывает путь к каталогу, который содержит изображения. Путь может быть абсолютный, относительный или указанный относительно корневой директории.

Вторая переменная, – iExt, – является расширением файла всех изображений. Около 99% времени мы тратим на загрузку изображений, которые формируют навигационную панель или используются в подобных целях. Вероятнее всего, расширение всех файлов будет одинаковым для всех изображений. В случае необходимости, лишь минимум усилий необходимо будет для изменения этого расширения.


Третья переменная, loaded, содержит булевское значение, которое указывает, действительно ли функция preLoad () вызвана , и изображения были загружены. Без этого, ваши изображения, которые вы используете в функции rollOver () не будет существовать, и если пользователь наведет курсор мыши на такую картинку до завершения загрузки страницы, вы получите сообщение об ошибке. Проверяя значения загруженной переменной в функции rollOver (), мы предотвращаем появление этой ошибки.

Четвертая переменная, suffix, фактически является массивом. В нем определяется префикс, который добавится к имени изображения, чтобы обозначить состояние, в котором изображение находится. Для моей задачи достаточно двух префиксов-on и off. Если вам для загрузки требуется более, чем два префикса, достаточно просто добавить общее количество состояний, в которых Вы нуждаетесь.

Что бы заставить это все работать, осталось сделать последний шаг-загрузить изображения. Вы можете сделать это несколькими путями. Единственное, что надо сделать-это составить список имен изображений для функции preLoad (), используемый как аргумент, для всех изображений, которые вам необходимо загрузить. Так, если необходимо загрузить изображения about, product, order, contact, и faq с префиксами on и off, то возможны следующие варианты:
Вызов функции preLoad () через обработчик события onLoad
<body onLoad=«preLoad(«about»,«product»,«order»,«contact»,«faq»)»>
Вызов функции через обработчик события window.onload в пределах блока <script>, вызывающего функцию preLoad ().
function onLoad()
{
preLoad(«about», «product», «order», «contact», «faq»);
}
window.onload = onLoad;
Вызов функции preLoad () через обработчик события onLoad для каждого изображения, к которому будет применена функция rollOver.
<a href=«about.html»
onMouseover=«rollOver(«about», «on»)»
onMouseout=«rollOver(«about», «off»)»>
<img name=«about» src=«images/about_off.gif»
onLoad=«preLoad(this.name)» height=«25»
width=«75» border=«0» alt=«About»></a>

Примечание: вышеупомянутый блок кода с функцией preLoad () предзагрузит файлы с префиксами on и off только для изображения about. Никакие другие изображения, нуждающиеся в предзагрузке, загружены не будут. Фокус состоит в том, чтобы добавить функцию preLoad (this.name) к каждому объекту, имеющему перекат (rollover), и следовательно нуждающемуся в предзагрузке изображений, связанных с ним.

Теперь, для того чтобы увидеть, как будет работать этот способ предзагрузки по сравнению со старым, приведем пример использования старого метода для тех же пяти ссылок, указанных выше.
if(document.images)
{
about_on = new Image();
about_on.src = «images/about_on.gif»;
about_off = new Image();
about_off.src = «images/about_off.gif»;
product_on = new Image();
product_on.src = «images/product_on.gif»;
product_off = new Image();
product_off.src = «images/product_off.gif»;
order_on = new Image();
order_on.src = «images/order_on.gif»;
order_off = new Image();
order_off.src = «images/order_off.gif»;
contact_on = new Image();
contact_on.src = «images/contact_on.gif»;
contact_off = new Image();
contact_off.src = «images/contact_off.gif»;
faq_on = new Image();
faq_on.src = «images/faq_on.gif»;
faq_off = new Image();
faq_off.src = «images/faq_off.gif»;
}

Сравнив этот метод с вышеупомянутым и увидев, насколько просто можно обеспечить предзагрузку всех изображений с необходимыми префиксами, я уверен, что вы поймете преимущество использования функции preLoad ().

Приведем пример функции rollOver ():
function rollOver(iName, iState)
{
if(document.images && loaded)
    {
    document.images[iName].src = self[iName + «_» + iState].src;
    }
}

Вызвать эту функцию можно из html-документа:
<a href=«about.html» onMouseover=«rollOver(«about», «on»)»
onMouseout=«rollOver(«about», «off»)»>
<img name=«about» src=«images/about_off.gif»
height=«25» width=«75» border=«0» alt=«About»></a>

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

Атрибут name изображения такое же, как одно из значений, используемых функцией preLoad ().

Это то же значение используется как аргумент iName (первый параметр) функции rollOver ().

Инициируемое изображение должно иметь префикс off.

 

Интересное

Externet VPN: технология...
Современный телекоммуникационный рынок предлагает пользователю множество решений, призванных сделать различные типы связи более доступными, удобными и надежными. Сегодня одной из самых интересных...
Подробнее...
Модемы: Команды AT
Введение в АТ-командыТехнически модем представляет собой своего рода компьютер, содержащий микропроцессор, постоянное запоминающее устройство и тому подобное. Надо заметить, что по...
Подробнее...
Настройка роутера с...
В данной статье мы расскажем о настройке роутера на базе FreeBSDвыполняющего роль шлюза в инернет с установкой firewall-a, иподдерживающем статическую arp таблицу mac адресов в локальной сети.Речь...
Подробнее...
Миф о QoS
Нет ни одного человека, который бы хоть раз не прочитал какой-нибудь FAQ по Windows XP. А раз так, то каждый знает, что есть такая вредная служба Quality of Service — сокращенно QoS. При...
Подробнее...
Настройка Web...
Данное решение также может быть адресовано владельцам небольших беспроводных сетей, предоставляющим платную услугу использования Internet для мобильных абонентов. В интернет-кафе ставка обычно...
Подробнее...
Создать офис
Для создания деловой атмосферы в офисе и повышения работоспособности служащих необходимы определенные благоприятные условия, напрямую связанные не только с рациональной расстановкой мебели и...
Подробнее...
Хакеры тоже заимствуют...
Хакерам по душе многие принципы сообщества open source. Они охотно делятся кодом, заимствуют готовые решения, используют чужие модули. Если бы в сообществе вирусописателей не доминировали идеи...
Подробнее...
SSI - что, когда, как?
Основным, простейшим, но в то же время чрезвычайно мощным инструментом поддержки больших наборов документов является SSI (Server-Side Includes — включения на стороне сервера). Если кто-то из...
Подробнее...
Система автоматизации
Главными критериями успеха любого заведения, в частности ресторана, бара или кафе, являются: хорошая кухня, продуманный стиль, отличный сервис, и, обязательно, оперативная работа персонала с...
Подробнее...
Электронные рассылки
Электронные рассылки — самый мощный способ продвижения своего узла.Однако, этот способ требует наибольшей аккуратности использования.Этика, оптимальный объем и содержание Регулярные рассылки...
Подробнее...