Перенос в виде хлебных крошек

#javascript #jquery #twitter-bootstrap

#javascript #jquery #twitter-bootstrap

Вопрос:

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

Чтобы перейти от

 Home / Folder 1 / Folder 2
/ File
  

Для

 Home / ... / Folder 2 / File
  

http://jsfiddle.net/6vhhH/4/

На самом деле изменение текста — это не настоящая проблема, это определение того, когда хлебная крошка была обернута, и запуск кода для замены текста, когда кто-то изменяет размер окна.

Обновить:

Вот что у меня получилось, если это пригодится будущим поисковикам

http://jsfiddle.net/6vhhH/10/

Ответ №1:

вы могли бы проверить высоту вашего хлебного крошки при изменении размера страницы:

 $(window).resize(function() {
    if($("#breadcrumb").height() > singleLineValue) {
         // change
    } else {
         // change back
    }
}):
  

где ‘breadcrumb’ — это идентификатор оболочки вокруг вашей хлебной крошки (nav или div, как вам угодно)

Комментарии:

1. Кажется, это только начало. Я думаю, когда я закончу, это будет сложнее, чем просто и if else блокировать, хотя для того, чтобы немного уменьшить размер.

2. Я выбираю это как лучший ответ, поскольку это больше навело меня на правильный путь к чему-то гибкому.

Ответ №2:

С помощью этого ответа — http://jsfiddle.net/moagrius/wN7ah / и немного добавленного кода, у меня есть решение для вас — http://jsfiddle.net/6vhhH/7 /

В основном я сделал следующее:

  • Сделано так, что хлебные крошки не переносятся, а переполнение скрыто.
  • Я добавил точку размером 1 пиксель к последнему <li>
  • Затем скрипт проверяет, отсутствует ли этот элемент на странице.

Щелкните окно, чтобы получить результат.

Комментарии:

1. Мне это очень нравится, но это ограничивает проверку размера окна. В менее простом примере с добавлением большего содержимого справа от дорожки хлебных крошек будет ли это по-прежнему работать без необходимости также учитывать размеры этих динамических объектов?

2. Это настолько гибко, насколько вы хотите, просто измените строку 28 на оболочку по вашему выбору. Смотрите этот пример — jsfiddle.net/6vhhH/11