Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
YouTube 154 Подписчики
Telegram 241 Подписчики
VK 0 Подписчиков
Маркетер
Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • JavaScript

JavaScript: полезные функции (часть IV)

  • 29.03.2001

Автор статьи: Мельников Михаил

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

Для чего это нужно?

Механизм баннеров позволяет оживить страничку и зрительно создать впечатление, что сайт все время меняется. Наиболее полезна эта функция будет для контент-сайтов — очень удобно создавать баннеры для конкретных статей и размещать их в локальной баннерной системе. лучше всего, конечно, механизм прокрутки баннеров организовать на стороне сервера с применением Perl, PHP или ASP, но не у всех, к сожалению, есть доступ к CGI-скриптам. И, в этом случае, для решения задачи мы можем воспользоваться встроенными скриптовыми языками.
Несмотря на то, что я буду объяснять как написать небольшую баннерную систему с использованием JavaScript, изложенные принципы вполне применимы и для любых других языков.

Условия задачи и ограничения

А теперь, давайте, более подробно сформулируем условия задачи и введем ряд ограничений,
которые упростят программирование. Баннерная система должна выполнять следующие функции:

  • где-то хранить базу данных о баннерах
  • случайно выбирать, из вышеупомянутой базы, несколько неповторяющихся баннеров
  • обеспечивать механизмы отображения баннеров и перехода на нужную страничку при нажатии

    Накладываем на эти условия некоторые ограничения:

  • баннеры будут фиксированного размера, и храниться в формате GIF или JPEG
  • на страничке мы будем одновременно показывать четыре баннера

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

  • имя файла
  • альтернативный текст
  • адрес странички, на которую ссылается баннер

    Для удобства хранения и обновления базы баннеров, лучше всего выделить ее описание в отдельный файл и подключить при помощи механизма вставки внешнего js-файла. Это делается в секции заголовка при помощи следующей конструкции:

    <script language="JavaScript" src="banners.js"></script>

    А вот так, будет выглядеть содержимое файла banners.js

    var banners = new Array(
    "pic-01.gif", "Text #1", "http://www.link1.com/",
    "pic-02.gif", "Text #2", "http://www.link2.com/",
    "pic-03.gif", "Text #3", "http://www.link3.com/",
    "pic-04.gif", "Text #4", "http://www.link4.com/",
    "pic-05.gif", "Text #5", "http://www.link5.com/",
    "pic-06.gif", "Text #6", "http://www.link6.com/",
    "pic-07.gif", "Text #7", "http://www.link7.com/",
    "pic-08.gif", "Text #8", "http://www.link8.com/",
    "pic-09.gif", "Text #9", "http://www.link9.com/",
    "pic-10.gif", "Text #10", "http://www.link10.com/"
    )

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

    Программная часть

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

    n = Math.floor(Math.random()*(banners.length/3));

    Но, как я уже упоминал раньше, мы договорились, что одновременно на страничке будут показываться четыре баннера. И, следовательно, после каждой генерации случайного числа нам необходимо проверить, что данный баннер не совпадает с 3-мя другими. К тому же нам нужно где-то хранить уже сгенерированные числа. Для решения этих задач, мы организуем еще один массив — случайных чисел и при каждой генерации нового числа будем сопоставлять его с найденными ранее. Полный код, который решает эти проблемы, приведен ниже:

    var i, j;
    var flag; // Флажок, используемый для проверки совпадения
    var banners_show = 4; // Число показываемых на страничке баннеров

    var rand = new Array(banners_show-1);

    for (i=0; i<banners_show; i++) {
    do {
    flag=0;
    n = Math.floor(Math.random()*(banners.length/3));
    for (j=0; j<i; j++) {
    if (n == rand[j]) {
    flag=1;
    }
    }
    } while (flag);
    rand[i] = n;
    }

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

    Для отрисовки баннеров, мы напишем простую функцию, и будем передавать ей в качестве параметра порядковый номер баннера на страничке. используя этот номер, мы читаем из массива rand[] случайное число для конкретного баннера и уже используя его, находим все необходимые для отрисовки данные:

    function Show_Banner(number) {

    n=rand[number-1];

    document.write('<a href="' + banners[n*3+2] + '"><img src="banners/' + banners[n*3] + '"' + 'border=0 width=' + banner_width + ' height=' + banner_height + ' alt="' + banners[n*3+1] + '"></a>');

    }

    Вот, практически и все, наша локальная баннерная система готова. Осталось только четыре раза вызвать функцию Show_Banner() из подходящей части странички. Нужно, только не забыть, что код JavaScript отделяется от html тегами <script></script>:

    <script>
    <!--
    Show_Banner(1);
    //-->
    </script>

    .......

    <script>
    <!--
    Show_Banner(4);
    //-->
    </script>

    Для проверки работоспособности локальной баннерной системы, несколько раз нажмите в броузере кнопку Reload и убедитесь, что каждый раз генерируются разные и не совпадающие друг с другом баннеры.

  • Алексей Волков

    Предыдущий материал
    • HTML

    Бойцы невидимого фронта

    • 29.03.2001
    • Алексей Волков
    Read More
    Следующий материал
    • JavaScript

    JavaScript: полезные функции (часть V)

    • 29.03.2001
    • Алексей Волков
    Read More
    Вас также может заинтересовать
    Read More
    • JQuery

    Хитрости JQuery

    • jokar
    • 23.05.2012
    Read More
    • JQuery

    Закруглить углы изображения при помощи JQuery

    • jokar
    • 21.05.2012
    Read More
    • JQuery

    Знакомьтесь: Nivo Slider от jQuery

    • tamo
    • 28.09.2010
    Read More
    • JQuery

    Первое знакомство с jQuery: часть первая.

    • tamo
    • 26.09.2010
    Read More
    • JQuery

    Продолжаем изучать jQuery: часть вторая. Учимся выделять элементы.

    • tamo
    • 26.09.2010
    Read More
    • JQuery

    Продолжаем изучать jQuery: работа с анимацией. Часть третья.

    • tamo
    • 26.09.2010
    Read More
    • JQuery

    Плагин AeroWindow для jQuery

    • jokar
    • 13.09.2010
    Read More
    • JQuery

    Симпатична скользящая форма на jQuery

    • jokar
    • 12.09.2010

    Добавить комментарий

    Для отправки комментария вам необходимо авторизоваться.

    Свежие посты
    • Дайджест постов Сергея Людкевича
      • 12.09.24
    • Как юристы тормозят бизнес
      • 30.08.24
    • Продвижение оптовых кампаний в Яндекс Директ
      • 06.03.24
    • Cарафанное радио
      • 13.01.24
    • 5-55: История компании
      • 01.03.23
    Маркетер
    • О проекте
    • Информационное спонсорство
    • Рекламным агентствам
    • Ссылки
    (с) ООО "Маркетер". Официальный сайт. Маркетер: Статьи про рекламу, маркетинг, public relations, интернет

    Введите ключевые слова для поиска и нажмите Enter