...

понедельник, 21 апреля 2014 г.

Bootstrap Dropdown Menus Enhancement v3.1.1

Около года назад, я создал расширения выпадающих меню для Bootstrap v2 (хабрапост). В связи с пасхальными праздниками наконец нашлось время обновить функционал до версии 3 (Bootstrap v3).

Список функций:


  • Добавлена поддержка подменю

  • radio и checkbox

  • позиционирование

  • bullet






В новой версии весь css код переехал в отдельный файл и не вносит изменения в dropdown.less, а лишь расширяет его. Javascript код создан на основе dropdown.js из bootstrap, но по моему мнению немного улучшен. Например, меня пугала функция clearMenus:

function clearMenus(e) {
$(backdrop).remove()
$(toggle).each(function () {
var $parent = getParent($(this))
var relatedTarget = { relatedTarget: this }
if (!$parent.hasClass('open')) return
$parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
if (e.isDefaultPrevented()) return
$parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
})
}
// а далее такой код
$(document).on('click.bs.dropdown.data-api', clearMenus)




Т.е. каждый раз, при клике на странице, запускался вот этот быстрый код, который по сути ничего не делал если не имелось открытых меню. В моем исполнении функция закрывает только те меню, что были открыты api. Функцию clearMenus я сохранил и сделал публичной, внутренне она не используется, но при надобности ее можно вызвать извне $.fn.dropdown.clearMenus

Ну и само собой поддержка подменю, правда этот функционал новый и будет еще дорабатываться.

Оригинальный dropdown.js не нужен.

1. подменю




Разработчики убрали этот функционал из BS3.


Submenus just don't have much of a place on the web right now, especially the mobile web. They will be removed with 3.0. — http://ift.tt/Po0VIR



Например, в одном проекте, мне нужно было реализовать главное меню с двумя уровнями вложенности, которое складывается при меньшем разрешении (меню из navabar). Отсюда и появилась надобность в этом функционале. Смотрите первый пример чтобы лучше понять о чем речь.

2. radio и checkbox




Добавляет поддержку для radio и checkbox. Примеры.

2. позиционирование




Иногда требуется расположить меню выше кнопки или по центру. Для этого помимо стандартного .pull-right были внедрены новые классы .pull-top, .pull-center, .pull-middle.

3. bullet




Класс .bullet добавляет стрелочку к меню.


Буду рад любым комментариям, замечаниям, дополнениям. Спасибо за внимание.


PS: Страница на GitHub оформлена на английском языке. Я не очень силен в английском, поэтому буду рад любой помощи в исправлении неточностей и ошибок.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


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

Отправить комментарий