Выгодная регистрация доменов
ХОСТИНГ AGAVA.RU
Каждому клиенту домен .ru,
.com, .net, .org бесплатно.
Выбор домена:

Планы хостинга:
Lite, 1 Gb, Email 150 руб.
Normal, 2 Gb, Email, Perl,
PHP, MySQL
270 руб.
Регулярные выражения
Красивые шаблоны для сайтов
Дизайн - верстка

Красивое карусель - меню на JQUERY + видео пример

красивое карусель - меню на jqueryКрасивое карусель - меню на jQuery ( 3d ).

В этом примере будет рассказано как сделать такое меню с помощью jQuery и подключаемого плагина Сloud-Сarousel. Хотя плагин изначально предназначался разработчиком для создания 3d - галереи, где при клике на миниатюру подгружалась большая картинка, но нам ничего не мешает использовать его для создания красивого объемного и легко настраиваемого меню с установкой ссылок на нужные нам страницы! Все что нужно будет сделать - это заранее подготовить изображения которые и будут иконками у карусель - меню.

В моем примере использовались иконки формата PNG разрешением 100 Х 100 пикселей, в вашем это могут быть любые изображения и любого удобного для вас размера.

Когда я впервые увидел на заграничном сайте похожую карусель, я поcмотрел исходный код и узнал, что работает такая красота на jQuery, сразу наступили бессонные ночи с книгами и поисками jQuery плагинов каруселей и вот он результат!

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

В принципе, уже готовых изображений разного жанра и размера в сети достаточно много. Да и использование самого плагина абсолютно бесплатно! Также еще есть возможность подключения плагина jquery.mousewheel, что дает дополнительный эффект, а именно прокрутка влево или вправо пунктов меню с помощью колеса мыши! Или же можно просто разместить кнопки со стрелками или надписями влево и вправо, чтобы пользователь понял, что можно прокручивать пункты меню.

Стоит учитывать, пункты меню карусели стоит дублировать где - то на странице, так как подписи к изображениям вытаскиваются из атрибута тега title или alt! Для пользователя и для разработчика в этом ничего страшного нет, а вот поисковики по таким пунктам меню пройтись не смогут с пользой для вас!

Посмотреть пример работы

Скачать архив с исходниками

Смотрите также : Шаблон с каруселью на jQuery для Joomla 1.5

Итак приступим. Как и для большинства примеров на jQuery на этом сайте не лишним будет знание HTML и CSS, а также понимания как работает Javascript. Главное, что необходимо сделать со стороны HTML - это создать общий контейнер ( <div id="wrapper"> ) для всех элементов включая контейнер с самой каруселью, кнопки для прокрутки карусели, контейнер для подписей к пунктам меню.

Внутри основного контейнера ( <div id="wrapper"> ) будут располагаться следующие элементы :

  • <div id="title-carusel"></div> - контейнер для подписей к пунктам меню, в этом примере он спозиционирован с помощью абсолютного позиционирования прямо над центральной иконкой меню.

  • <div id="carousel"></div> - контейнер для иконок карусели ( пунктов меню ), в этом примере внутри него находится 15 иконок в формате PNG. Формат PNG использовался в основном из-за альфа канала ( прозрачность) и возможности добавления тени к иконке, что добавляет более красивый визуальный эффект.В вашем случае это могут быть любые изображения.

  • <input type="button" id="right-but"> и <input type="button" id="left-but"> - это кнопки для прокручивания карусели влево или вправо, они также как и контейнер для подписей спозиционированы с помощью абсолютного позиционирования, относительно элемента родителя ( <div id="wrapper"> ).

Код HTML :

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Красивое карусель - меню на jquery</title>
        <link rel="stylesheet" href="/css/style.css" type="text/css">
        <script type="text/javascript" src="/js/jquery-1.6.1.min.js"></script>
        <script type="text/JavaScript" src="/js/cloud-carousel.1.0.5.min.js"></script>
        <script type="text/JavaScript" src="/js/jquery.mousewheel.min.js"></script>
        <script type="text/JavaScript" src="/js/script.js"></script>
    </head>
    <body>
        <div id="wrapper">
         <div id="title-carusel"> </div>
            <div id = "carousel">            
                 <a href="#"><img class = "cloudcarousel" src="/images/aperture.PNG" alt="" title="" /></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/browser.png" alt="" title="" /></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/download_manager.png" alt="" title="" /></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/globe.png" alt="" title="" /></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/alfa.png" alt="" title="" /></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/gift_100x100.png" alt="" title="" /></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/Image00266.png" alt="" title="" /></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/rewrewr.PNG" alt="" title="" /></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/ktip.png" alt="" title="" /></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/magic8ball.png" alt="" title="" /></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/wwww.PNG" alt="" title=""></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/time_machine.PNG" alt="" title="" /></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/Image00412.PNG" alt="" title="" /></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/Image00154.PNG" alt="" title="" /></a>
                 <a href="#"><img class = "cloudcarousel" src="/images/Image00016.PNG" alt="" title="" /></a>
            </div>
                <input id="left-but"  type="button" value="Влево">
                <input id="right-but" type="button" value="Вправо">
            </div>
    </body>
</html>

Из приведенной выше HTML - разметки видно, что для реализации такого же меню важно иметь хотя бы базовые навыки работы с HTML. Все изображения в <div id="carousel"></div> заключены в тег <a></a> в атрибуте href="/ " которых стоит заглушка в виде символа # ( ссылка в никуда ), в рабочей версии вместо символа # прописывайте адреса страниц, предусмотренных под конкретный пункт меню. Это не является обязательным, карусель будет работать и просто на изображениях. Обязательным же является атрибут тега class равный cloudcarousel присвоенный каждому тегу <img />( картинка ), так как он используется в самом плагине Сloud-Сarousel.

Важно не забыть подключить javascript файлы к странице, их можно взять в архиве с исходниками или скачать с официальных сайтов :

  • <script type="text/javascript" src="/js/jquery-1.6.1.min.js"></script> - сама библиотека jQuery.

  • <script type="text/javascript" src="/js/cloud-carousel.1.0.5.min.js"></script> - файл плагина Сloud-Сarousel ( сжатый ).

  • <script type="text/javascript" src="/js/jquery.mousewheel.min.js"></script> - файл плагина отвечающий за прокручивание карусели колесом мыши.

  • <script type="text/javascript" src="/js/script.js"></script> - файл, где будет осуществляться jQuery - выборка и вызов метода CloudCarousel() с передачей параметров настройки карусели.

Если тут все понятно двигаемся дальше, если же возникли какие-то сложности с подключением javascript файлов посмотрите статью : Как добавить javascript на страницу там все подробно рассказано и даже есть видео - пример.

Код CSS ( подробное описание ниже ) :

body{
    background:url(../images/bg_body.png);
}
#wrapper{
    width:1000px;
    height:500px;
    position:relative;
    margin:0px auto;
}
#carousel{
    width:1000px;
    height:500px;
    overflow:scroll;
    margin:50px auto;
    background:url(../images/bg.png) repeat-y;
    border:3px solid #F3D1D9;
    border-radius:25px 25px 25px 25px;
    box-shadow:0 0 70px rgba(53,25,69,0.7);
}
#left-but{
    position:absolute;
    top:185px;
    left:10px;
    width:105px;
    height:100px;
    background:url(../images/left-button.png)no-repeat;
    border:0px;
    cursor:pointer;

}
#right-but{
    position:absolute;
    top:185px;
    right:10px;
    width:105px;
    height:100px;
    background:url(../images/right-button.png)no-repeat;
    border:0px;
    cursor:pointer;
}
#title-carusel{
    position:absolute;
    top:185px;
    left:445px;
    width:120px;
    height:40px;
    z-index:1;
    font-size:22px;
    font-weight:bold;
    font-style:italic;
    color:#4A0F40;
    text-align:center;
}
#carousel img{
    border:0px;
}

Описанные выше CSS - правила разбираем по порядку :

  • body - В виде фонового изображения определяется миниатурное, размером 2 x 2 пиксела изображение в фомате PNG, которое повторяется по вертикали и горизонтали заполняя все доступное место.
  • #wrapper - Фиксированная ширина равная 1000 пикселей. Фиксированная высота равная 500 пикселей. Позиционирование относительное. Внешний отступ сверху и снизу 0 пикселей, слева и справо автоматом ( центрирование внутри элемента родителя ).
  • #carousel - Фиксированная ширина равная 1000 пикселей. Фиксированная высота равная 500 пикселей. Добавление полосы прокрутки в случае если сожержимое занимает место больше чем элемент контейнер. Внешний отступ сверху и снизу 50 пикселей, слева и справо автоматом ( центрирование внутри элемента родителя ). В виде фонового изображения полоска с градиентной заливкой шириной 1000 пикселей и высотой 10 пикселей с повторением по горизонтали. Сплошная рамка размером 3 пиксела светло - розового цвета. Скругление углов ( спецификация CSS3 работает только в современных браузерах ) по 25 пикселей с каждой стороны. Плавная тень вокруг элемента темно - фиолетового цвета ( спецификация CSS3 работает только в современных браузерах ).
  • #left-but - Абсолютное позиционирование относительно элемента родителя ( <div id="wrapper"> ) которому задано относительное позиционирование, от верхнего края 185 пикселей, от левого края 10 пикселей. Фиксированная ширина равная 105 пикселей ( ширина фонового изображения стрелки ). Фиксированная высота равная 100 пикселей ( высота фонового изображения стрелки ). В виде фона изображение стрелки, с отменой повторения. Удаление рамки вокруг кнопки. Курсор мыши приобретает вид руки, при наведении на кнопку.
  • #right -but - Абсолютное позиционирование относительно элемента родителя ( <div id="wrapper"> ) которому задано относительное позиционирование, от верхнего края 185 пикселей, от правого края 10 пикселей. Фиксированная ширина равная 105 пикселей ( ширина фонового изображения стрелки ). Фиксированная высота равная 100 пикселей ( высота фонового изображения стрелки ). В виде фона изображение стрелки, с отменой повторения. Удаление рамки вокруг кнопки. Курсор мыши приобретает вид руки, при наведении на кнопку.
  • #title-carusel - Абсолютное позиционирование относительно элемента родителя ( <div id="wrapper"> ) которому задано относительное позиционирование, от верхнего края 185 пикселей, от левого края 445 пикселей, в вашем случае эти значения могут быть другими в зависимости от размера изображений карусели и ее конфигурации, в данном случае этот блок позиционировался для вывода в него подписей к изображениям карусели ( пунктам меню ) прямо над центральным изображением. Фиксированная ширина равная 120 пикселей, опять же в зависимости от размера текста и его длинны эти значения необходимо будет поправить. Фиксированная высота равная 40 пикселей. Вывод элемента на передний план ( z-index ). Размер шрифта 22 пиксела, полужирный, курсив, темно фиолетового цвета. Выравнивание текста по центру.
  • #carousel img - удаление рамок.

Код JQUERY ( подробное описание ниже ) :

           
$(document).ready(function(){
    $("#carousel").CloudCarousel({
        xPos: 500,
        yPos: 132,
        mouseWheel: true,
        reflOpacity: 0.3,
        minScale: 0.25,
        reflHeight: 100,
        reflGap: 4,
        bringToFront: true,
        titleBox: $("#title-carusel"),
        buttonLeft: $("#left-but"),
        buttonRight: $("#right-but")
    });
});

Код JQUERY написанный выше начинается со стандартной конструкции $(document).ready(function(){ }); обеспечивающей выборку элементов, только после того как сформировалось DOM - дерево объектов и узлов. Далее следует jquery - выборка по атрибуту тега id равному carousel, а именно блок с нашими картинками и у него вызывается метод CloudCarousel, с передачей параметров в виде литерала объекта, где возможна передача сразу нескольких параметров, типа свойство : значение разделенных запятыми, в данном примере используются не все возможные параметры настройки плагина Смотри ниже таблицу всех настроек плагина.

Все параметры настройки плагина Cloud-Carousel:

ПараметрОписание от версии 1.0.0Значение по умолчанию
minScale
Определяет минимальный размер самого дальнего изображения. Для плавного перехода в размерах от дальних изображений к ближним рекомендуемое значение 0.25.
0.5
reflHeight
Определяет высоту зеркального отражения картинок в пикселах.
0
reflGap
Определяет размер пространства между картинками и зеркальным отражением в пикселах.
0
reflOpacity
Определяет степень прозрачности зеркального отражения, где 1 = полностью непрозрачный. Шаг по 0.1.
0.5
xRadius
Определяет ширину круга карусели.
Ширина контейнера / 2.3
yRadius
Определяет угол наклона карусели.
Высота контейнера / 6
xPos
Определяет позицию карусели по горизонтали. Рекомендуемое значение 50% от ширины контейнера.
0
yPos
Определяет положение карусели по вертикали. Рекомендуемое значение 50% от высоты контейнера.
0
buttonLeft
В значении свойства этого параметра используется ссылка на элемент который будет служить кнопкой для поворота карусели влево сделанная с помощью jquery - выборки. Выбираемый элемент должен быть за пределами блока с изображениями в HTML - разметке.
null
buttonRight
В значении свойства этого параметра используется ссылка на элемент который будет служить кнопкой для поворота карусели вправо сделанная с помощью jquery - выборки. Выбираемый элемент должен быть за пределами блока с изображениями в HTML - разметке.
null
titleBox
В значении свойства этого параметра используется ссылка на элемент в котором будет отображаться содержимое атрибута тега title, в момент наведения указателя мыши на изображение. Ссылка передается в виде jquery - выборки. Выбираемый элемент должен быть за пределами блока с изображениями в HTML - разметке.
null
altBox
В значении свойства этого параметра используется ссылка на элемент в котором будет отображаться содержимое атрибута тега alt, в момент наведения указателя мыши на изображение. Ссылка передается в виде jquery - выборки. Выбираемый элемент должен быть за пределами блока с изображениями в HTML - разметке.
null
FPS
Определяет частоту кадров в секунду, при прокрутке карусели. Чем больше значение, тем более плавно происходит прокрутка. Слишком большое число в виде значения этого параметра может вызвать подвисание браузера. Значение по умолчанию равное 30 является рекомендуемой золотой серединой между производительностью и плавностью прокрутки.
30

Параметры доступные в версии 1.0.1.

ПараметрОписание от версии 1.0.1Значение по умолчанию
speed
Определяет скорость прокрутки карусели. Рекомендуемое значение 0.1-0.3. Значения параметра должны быть больше 0 и меньше 1.
0.2
autoRotate
Определяет будет ли карусель прокручивается автоматически и в какою сторону. Возможные значения 'left' или 'right'. Автопрокрутка останавливается при наведении указателя мыши на блок с каруселью.
'no'
autoRotateDelay
Определяет задержку между прокручиванием карусели в миллисекундах. Рекомендуемое значение 1000 (одна секунда).
1500

Параметры доступные в версии 1.0.2.

ПараметрОписание от версии 1.0.2Значение по умолчанию
mouseWheel
Определяет возможность прокрутки карусели с помощью колеса мыши. Для работы необходим плагин jquery.mousewheel. и значение параметра поставленное в true. Загрузить плагин можно по адресу: http://plugins.jquery.com/project/mousewheel
false

Параметры доступные в версии 1.0.4.

ПараметрОписание от версии 1.0.4Значение по умолчанию
bringToFront
Определяет активность элементов на заднем плане. То есть при клике на элемент находящийся на заднем плане срабатывает анимация прокрутки. Для включения параметра необходимо значение true.
false

Автор плагина : Raff Cecco. Cайт разработчика : www.professorcloud.com

Видео - пример как сделать карусель меню на jQuery :

В этом видео примере показаны основные телодвижения, под приятную музыку.

 


Поиск
Полезности о JAVASCRIPT