«Хлебные крошки» на jQuery

«Хлебные крошки» на jQuery

Привет!

Знаете что называют «хлебными крошками»? Это вид вспомогательной навигации, которая показывает вложенность текущего документа. Она очень удобна, если на вашем сайте есть глубокая вложенность страниц. Но такой вид навигации встречается не только на сайтах, но и в операционных системах (на картинке слева изображена маковская версия).

Так вот, сегодня мы рассмотрим плагин BreadCrumbs для jQuery, которые позволит нам сделать эти крошки более компактными (в случае, когда у вас более 5 вложенных страниц с длинными заголовками это очень актуально). Думаю, что разработчики плагина взяли идею как раз из Мак ОСи.

Итак, начнем с верстки. Как и полагается нормальным парням, хлебные крошки мы сделаем через неупорядоченный список ссылок (красиво, валидно, семантично):

<div class="breadCrumbHolder module">
<div id="breadCrumb" class="breadCrumb module">
<ul>
<li><a href="#">Главная</a></li>
<li><a href="#">Примеры</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">jQuery</a></li>
<li><a href="#">Плагины</a></li>
<li><a href="#">Навигация</a></li>
<li>«Хлебные крошки» на jQuery — плагин jBreadCrumbs</li>
</ul>
</div>
</div>
<div class="chevronOverlay main"></div>

Теперь сделаем стили:

.breadCrumb {
margin: 0;
padding: 0;
float: left;
display: block;
height: 21px;
overflow: hidden;
width: 990px;
padding:5px;
border:solid 1px #dedede;
background:#fff;
}

.breadCrumb ul {
margin: 0;
padding: 0;
height: 21px;
display: block;
}

.breadCrumb ul li {
display: block;
float: left;
position: relative;
height: 21px;
overflow: hidden;
line-height: 21px;
margin: 0px 6px 0px 0;
padding: 0px 10px 0px 0;
font-size: .9167em;
background: url(../Images/Chevron.gif) no-repeat 100% 0;
}

.breadCrumb ul li div.chevronOverlay {
position: absolute;
right: 0;
top: 0;
z-index: 2;
}

.breadCrumb ul li span {
display: block;
overflow: hidden;
}

.breadCrumb ul li a {
display: block;
position: relative;
height: 21px;
line-height: 21px;
overflow: hidden;
float: left;
}

.breadCrumb ul li.first a {
height: 16px !important;
text-indent: -1000em;
width:16px;
padding: 0;
margin-top: 2px;
overflow: hidden;
background:url(../Images/IconHome.gif) no-repeat 0 0;
}

.breadCrumb ul li.first a:hover {
background-position: 0 -16px;
}

.breadCrumb ul li.last {
background: none;
margin-right: 0;
padding-right: 0;
}

.chevronOverlay {
display: none;
background: url(../Images/ChevronOverlay.png) no-repeat 100% 0;
width: 13px;
height: 20px;
}

Для работы плагина нам потребуется сам jQuery, плагин jQuery Easing и плагин jQuery Dimensions (они все есть в архиве примера в конце статьи). Подключаем их (внизу страницы) и вызываем плагин:

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/jquery.dimensions.js"></script>
<script type="text/javascript" src="js/jquery.jBreadCrumb.js"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#breadCrumb").jBreadCrumb({easing:'swing'});
});

Вот и все собственно. Просто, быстро, а главное удобно! ;-)

Смотрим пример Загружаем

Как всегда, жду ваших советов, замечаний и вопросов в комментариях. Пока!

Расскажите друзьям

Оцените статью:
  • 1
  • 2
  • 3
  • 4
  • 5

Комментарии — 21

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

С отключенным javascript'ом ваши breadcrumbs'ы более юзабельны, посмотрите сами.
#
Junior
demy
Как-то не очень удобно для пользователя со свернутыми списками работать
Лучше перед глазами чтобы все всегды было видно.
#
demy  
Cuprum
Красиво? Наверное. Удобно? Весьма сомнительно.
Александр
Да классно, а кто уже куда эту идею в монтирует дело каждого. Не кто не навязывает
Михаил
Это не хлебные крошки, это «стрихнин какой-то».
Хлебные крошки нужны чтобы:
— Понять «где я?»
— Быстро перейти в место, которое нужно (из пути крошек)

Ваши крошки не позволяют ни того, ни другого.

Какую цель вы преследовали, когда делали их?
#
Михаил
CJ Slade
Идея вероятно была в компактном виде.
Можно попробовать слегка изменить. Оставить в каждой ячейке по 1-2 слову и приписать "...".

Получится примерно так:
"Спорт, Охота... » Спортивные тренажеры... » Тренажеры высокой... » Складные » Эллиптический тренажер LandIce с панелью Cardio Trainer E9"

#
CJ Slade
А.Бублиенко
Как по мне, то соглашусь со всеми коментариями выше — хлебные крошки в таком виде безполезны.
Steward
7 сообщение и никто даже не попытался взглянуть в исходник.. пипец...
элементарно же - по-умолчанию previewWidth:5
ставьте вызов
jQuery("#breadCrumb").jBreadCrumb({previewWidth:35, easing:'swing'});
делает сокращения более приемлимыми - всё отлично видно
Мариана
полезная вещь просто супер!!!!
Vii
Так сказать мои 5 копеек критики :)
Если в примере навести на 3-ю ссылку (та, что «JavaScript»), дождаться пока полностью раскроется, а потом попробовать навести на «jQuery» (4-я ссылка) то при закрытии 3-й, курсор 4-я крошка выскальзнет из-под курсора и начнет открываться 5-я ссылка.
Но как прототип — прикольно
#
Vii  
Ionian.Wind
jQuery Dimensions - нет такой библиотеки в исходниках
#
Ionian.Wind
warex
Не знаю, мне что то вообще не понравилось. Кстати в DLE тег {speedbar} выводит твоё расположение на сайте. Без java и анимации, это намного красивей.
Михаил
>7 сообщение и никто даже не попытался взглянуть в исходник.. пипец...
элементарно же - по-умолчанию previewWidth:5
ставьте вызов
>jQuery("#breadCrumb").jBreadCrumb({previewWidth:35, easing:'swing'});
делает сокращения более приемлимыми - всё отлично видно

Когда будут показывать машину, которая не ездит, вы тоже будете предлагать доточить её напильником?
#
Михаил
Петр
Я думаю лучше сделать этот плагин несколько иначе. Ссылки сжимаются на до 1 буквы, а до 1 слова, чтобы было понятно что там находится.
Например:
Новости, наводим курсор - Новости мировой политики (как-то так надо)
tm
Просто, быстро, а главное удобно! ;-)


Я в большом сомнении, что это действительно удобно. Скорее это ужасно с точки зрения ЮЗАБИЛИТИ..
#
tm
Рома
А не подскажите у кого то есть крошки такие как в Виндовс 7 ,то есть куда заходишь туда и следует,и при нажатии на стрелочку видно было что в папке,может многого хочу,но был благодарен,если бы хоть подсказали)заранее спасибо
#
Рома
Dimox
Хлебные крошки нужно оставлять такими, какие они будут без jQuery. Сворачивание - абсолютное лишнее.
Hyperc0der
Согласен:
Слишком маленькая область реагирования.
Сворачивание вообще лишнее, пригодится только для длинных категорий, но и надо оставить пару слов, чтобы понять о чем, иначе весь смысл крошек теряется.
hrapimbul
Блин, ребята, человек показал как он видит крошки. Дал Вам НА ХАЛЯВУ коды. Одним словом приготовил, прожевал, в рот положил. Так за Вас ещё и проглотить нужно?! Стыдно должно быть!!! ЮЗАБИЛИТИ,... напильником доточить... А Вы хотите, чтобы за Вас сайт офигенный сделали, красивый, со всякого рода ява-интересностями и чтоб денюжку никому не платить и, упаси Господи, самому в кодах ковыряться!!! Это ж думать нужно! Особенно про overflow и width в CSS!!!

Новый комментарий

как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть
как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть

metin2 pvp metin2 pvp serverler pvp serverler