jCarousel это jQuery карусель, плагин для управления данными, отображаемых в виде горизонтального или вертикального списка. Данные могут быть представлены как обычный HTML контент или могут быть загружены с помощью AJAX. Списку можно задать прокрутку вперед или назад, с анимацией или без нее.
Источник
Скачать
Примеры
- jCarosel,
Описание
Для работы jQuery-карусели необходимо в html-файле создать следующую структуру:
1 2 3 | <ul id="mycarousel" class="jcarousel-skin-name"> <!-- The content goes in here --> </ul> |
Плагин автоматически создаст необходимую HTML-обертку вокруг элемента <ul>. Атрибут class используется для указания скина карусели. После инициализации плагина HTML код будет выглядеть так:
1 2 3 4 5 6 7 8 9 10 11 12 | <div class="jcarousel-skin-name"> <div class="jcarousel-container"> <div class="jcarousel-clip"> <ul class="jcarousel-list"> <li class="jcarousel-item-1">First item</li> <li class="jcarousel-item-2">Second item</li> </ul> </div> <div disabled="disabled" class="jcarousel-prev jcarousel-prev-disabled"></div> <div class="jcarousel-next"></div> </div> </div> |
Установка
Для использования плагина jCarousel, вам необходимо подключить библиотеку jQuery, плагин и скин для него ( css файл)
1 2 3 | <script type="text/javascript" src="/path/to/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="/path/to/lib/jquery.jcarousel.min.js"></script> <link rel="stylesheet" type="text/css" href="/path/to/skin/skin.css" /> |
Инициализация jQuery карусели
1 2 3 4 5 | jQuery(document).ready(function() { jQuery('#mycarousel').jcarousel({ // Configuration goes here }); }); |
Настройка
В архиве с плагином имеется несколько готовых скинов (css файлы), так же вы можете создать свой скин на основе одного из них.
Динамическая загрузка контента
Используя callback-функцию itemLoadCallback вы можете динамически создавать элементы <li>
1 2 3 4 5 | jQuery(document).ready(function() { jQuery('#mycarousel').jcarousel({ itemLoadCallback: itemLoadCallbackFunction }); }); |
itemLoadCallbackFunction это JavaScript функция, которая будет вызвана, когда необходимые элементы карусели будут загружены. Функции передаетя два параметра: ссылка на экземпляр карусели и флаг, которые указывает текущее состояние карусели (‘init’, ‘prev’ или ‘next’).
1 2 3 4 5 6 7 8 9 | function itemLoadCallbackFunction(carousel, state){ for (var i = carousel.first; i <= carousel.last; i++) { // Check if the item already exists if (!carousel.has(i)) { // Add the item carousel.add(i, "I'm item #" + i); } } }; |
jCarousel имеет метод add(), позволяющий указывать индекс создаваемого элемента и индекс элемемента для обновления содержимого. Если элемент уже существует, то его содержание будет обновлено. Вы можете использовать в качестве ссылки на первый и последний видимые элементы переменные carousel.first и carousel.last.
jCarousel содержит множество параметров, позволяющих управлять видимостью и поведением карусели.
Параметры:
-
параметрзначение по умолчаниюописание
-
verticalfalseпозволяет изменить способ показа с горизонтальной прокруткой на вертикальную
-
start1Индекс элемента с которого начинается показ
-
offset1Индекс элемента с которого будет происходить инициализация
-
sizeколичество элементов <li>, если размер не указан явноКоличество элементов для работы плагина
-
scroll3На сколько элементов будет происходить прокрутка
-
visiblenull (число)Если задано, ширина/высота пунктов будет вычислена и установлена в зависимости от ширины/высоты обрыва, так, чтобы указанное число пунктов было видимо.
-
animation«fast»Скорость прокрутки элементов. Возможны значения
"slow","fast", 0(без анимации) -
easingnull (строка)Название эффекта (смотрите )
-
auto0Задает интервал автоматической прокрутки содержимого. При значение 0 автопрокрутка отключена
-
wrapnullОпределяет поведение по достижению первого и последнего пункта (зацикливать или нет). Возможны значения
"first","last"и"both" -
initCallbacknull (строка)Пользовательская функция, вызываемая при инициализации карусели. Передается два параметра: экземпляр карусели и состояние (init, reset или reload)
-
itemLoadCallbacknullПользовательская функция, вызываемая при загрузке объектов. Передается два параметра: экземпляр карусели и состояние (init, reset или reload)
-
itemFirstInCallbacknullПользовательская функция, вызываемая (по завершению анимации) когда элемент становится первым в зоне видимости поля карусели. Передается 4 параметра: экземпляр карусели, ссылка на элемент
<li>этого объекта, индекс, указывающий позицию элемента в списке и состояние карусели (prev, next, init) -
itemFirstOutCallbacknullПользовательская функция, вызываемая (по завершению анимации) когда элемент перестает быть первым в зоне видимости поля карусели. Передается 4 параметра: экземпляр карусели, ссылка на элемент
<li>этого объекта, индекс, указывающий позицию элемента в списке и состояние карусели (prev, next, init) -
itemLastInCallbacknullПользовательская функция, вызываемая (по завершению анимации) когда элемент становится последним в зоне видимости поля карусели. Передается 4 параметра: экземпляр карусели, ссылка на элемент
<li>этого объекта, индекс, указывающий позицию элемента в списке и состояние карусели (prev, next, init) -
itemLastOutCallbacknullПользовательская функция, вызываемая (по завершению анимации) когда элемент перестает быть последним в зоне видимости поля карусели. Передается 4 параметра: экземпляр карусели, ссылка на элемент
<li>этого объекта, индекс, указывающий позицию элемента в списке и состояние карусели (prev, next, init) -
itemVisibleInCallbacknullПользовательская функция, вызываемая (по завершению анимации) когда элемент находится в зоне видимости поля карусели. Передается 4 параметра: экземпляр карусели, ссылка на элемент
<li>этого объекта, индекс, указывающий позицию элемента в списке и состояние карусели (prev, next, init) -
itemVisibleOutCallbacknullПользовательская функция, вызываемая (по завершению анимации) когда элемент не входит в зону видимого поля карусели. Передается 4 параметра: экземпляр карусели, ссылка на элемент
<li>этого объекта, индекс, указывающий позицию элемента в списке и состояние карусели (prev, next, init) -
buttonNextCallbacknullПользовательская функция, вызываемая при изменение состояния кнопки «next». При помощи этой функции можно управлять поведением кнопки «next». Передается 3 параметра: экземпляр карусели, ссылка на элемент управления и флаг, показывающий состояние кнопки (enabled/disabled)
-
buttonPrevCallbacknullПользовательская функция, вызываемая при изменение состояния кнопки «prev». При помощи этой функции можно управлять поведением кнопки «prev». Передается 3 параметра: экземпляр карусели, ссылка на элемент управления и флаг, показывающий состояние кнопки (enabled/disabled)
-
buttonNextHTML<div></div>HTML код генерируемый для кнопки «next». При значение null кнопка не будет создана
-
buttonPrevHTML<div></div>HTML код генерируемый для кнопки «prev». При значение null кнопка не будет создана
-
buttonNextEvent«click»Событие кнопки по которому карусель будет прокручена вперед
-
buttonPrevEvent«click»Событие кнопки по которому карусель будет прокручена назад
Февраль 22nd, 2011
Здравствуйте.У меня возникла проблема с каруселью. Она нормально отображается во всех браузерах ,кроме ie9 . Даже в 6ом IE все работает как надо.
ВО всех браузерах страница выглядит следующим образом :
а в ие9:
Заранее спасибо за любую помощь по проблеме.
[Ответить]
Февраль 24th, 2011
Я думаю, это проблема в самой карусели
[Ответить]
Март 11th, 2011
Вопрос следующего порядка: если элементов списка не хватает для заполнения строки (горизонтальная карусель, wrap:’circular’), плагин дополняет строку пустыми li. Можно ли как-нибудь сделать, чтоб вместо пустых элементов заново шли существующие?
[Ответить]
AlexSol отвечает:
Март 11th, 2011
попробуйте параметр wrap: ‘circular’
[Ответить]
Milghur отвечает:
Июнь 1st, 2011
Как решили проблему?
[Ответить]
Май 13th, 2011
Как изменить размер картинок в карусели?
[Ответить]
AlexSol отвечает:
Май 13th, 2011
это в css
jcarousel/skins/[имя скина]/skin.css
[Ответить]
Май 15th, 2011
Спасибо, уже разобрался.
[Ответить]
Май 19th, 2011
А как изменить навигацию с цифр на строки? Чтобы вместо «1,2,3,4….» были к примеру «Первая картика, вторая картинка…» ?
[Ответить]
Июнь 8th, 2011
Привет, может поможешь, проблема с каруселью, не знаю куда копать.
У меня карусель представлена в виде картинок, каждая картинка в виде ссылки на свой раздел.
Таких картинок примерно 6-9
все работает как надо, вертится, грузится и т.д. Если страница загружается первый раз карусель также грузится как надо. Но вот если нажимать на картинку в карусели по ссылке, то открывается другой раздел (дизайн общий для всех разделов) и карусель ведет себя странно – буквально на секунду показываются все картинки карусели в 3-4 ряда, потом схлопываются и снова рабочая карусель. Вот это появление всех картинок и схлопывание раздражает заказчика. Как будто сначала вываливается содержимое, потом подгружается скрипт, оборачивает элементы в свои стили, и применяется css. Может возможно поставить свойство изначально ul visibility:hidden, и когда скрипт уже прогрузится, убрать это свойство.
Не знаю можно ли кидать ссылки, поэтому выше привел часть html, но глюк можно посмотреть пока тут vtyurinkhv.0fees.net – бесплатный хостинг, тестю там проект, чтобы к заказчику каждый раз с ноутбуком не бегать.
[Ответить]
AlexSol отвечает:
Июнь 8th, 2011
Примерно так
JS:
var count=0;
jQuery(document).ready(function() {
total = jQuery(‘#slider li’).length
jQuery(‘#slider li img’).load(function(){
count++;
if(count==total){jQuery(‘#mycarousel’).jcarousel()}
})
})
CSS:
#slider{
height:184px;
overflow:hidden;
}
[Ответить]
Июнь 13th, 2011
Добрый день! Установил карусельку. В Опере наблюдаю странный глюк – если сделать на кнопке влево\вправо двойной клик – открывается контекстное меню Оперы «Искать.., Копировать…, Добавить в закладки…». При этом демо с сайта разработчика работает нормально. Скрипт не менял. Может кто сталкивался?
[Ответить]
Июнь 13th, 2011
Разобрался. Такой глюк появляется, если использовать ссылки помимо изображений в карусели.
[Ответить]
Июнь 14th, 2011
День добрый! Подскажите пожалуйста как сделать так, что бы при загрузки страницы скрипт карусели не подгружал элементы LI внутрь .
Хочется первые элементы LI создавать сразу в коде страницы (что бы их скормить поисковикам), а уже потом при нажатии кнопок вперед или назад их заменять скриптом карусели.
Заранее спасибо!
[Ответить]
AlexSol отвечает:
Июнь 18th, 2011
на странице присутствует только список,карусель это надстройка. если отключите js то увидите это
[Ответить]
Июнь 17th, 2011
Здравствуйте!А не подскажете как решить мою проблемку.Вставляю свои картинки, а отображается только верхняя половина каждой картинки, примерно пикселей 75, а картинка в высоту 640. На скрине ниже более подробно. Всю таблицу стилей перекопала чета,не нашла как решить. Помогите,люди добрые.
[Ответить]
AlexSol отвечает:
Июнь 18th, 2011
файл скина:
.jcarousel-skin-tango .jcarousel-item {
height: 75px;
width: 75px;
}
[Ответить]
Июнь 20th, 2011
Добрый день. Немного отстраненно, но может быть поможете.
прикручиваю jCarousel к Drupal6.
яваскрипт динамичеки приделывает оболочку ТОЛЬКО к первой библиотеке,
————
## library1
## library2
———
вторая библиотека идет БЕЗ оболочки почему-то.
никто не скажет почему и как решить эту проблему? может в скрипте какое условное ограничение есть? дело в том что я в коде этого не могу понять.
Надеюсь на Вашу помощь, несколько недель уже бьюсь над задачей.
Спасибо, с уважением!
[Ответить]