Как получить подменю выпадающего списка Bootstrap для "dropup"
У меня есть раскрывающееся меню Bootstrap. Последний элемент li
является подменю. Как получить подменю для выпадания, когда полное меню опускается? Здесь код:
<div class="dropdown">
<a class="inputBarA dropdown-toggle" data-toggle="dropdown" href="#">FILTER</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
<li role="presentation">
<a role="menuitem" href="#">Text</a>
</li>
<li role="presentation">
<label>Label name</label>
<label>Label name</label>
<label class="checkbox">
<input type="checkbox">
Text </label>
<label class="checkbox">
<input type="checkbox">
Text </label>
<label class="checkbox">
<input type="checkbox">
Text </label>
<label class="checkbox">
<input type="checkbox">
Text </label>
</li>
<li class="dropdown-submenu">
<a tabindex="-1" href="#">Centralities</a>
<ul class="dropdown-menu">
<label class="radio">
<input type="radio" name="options" id="optionsRadios1" value="A" checked>
AA </label>
<label class="radio">
<input type="radio" name="options" id="optionsRadios2" value="B">
BB </label><label class="radio">
<input type="radio" name="options" id="optionsRadios2" value="C">
CC </label><label class="radio">
<input type="radio" name="options" id="optionsRadios2" value="D">
DD </label><label class="radio">
<input type="radio" name="options" id="optionsRadios2" value="E">
EE </label>
</ul>
</li>
</ul>
</div>
Ответы
Ответ 1
Похоже, что ответ ниже будет, как это сделать с нуля, я не знал, что в Bootstrap был класс dropup...
Итак, короткий ответ Bootstrap - применить класс "dropup" к <ul>
в более ранних версиях начальной загрузки:
<ul class="dropdown-menu dropup" role="menu" aria-labelledby="dLabel">
Однако в более новых версиях bootstrap (v3) класс "dropup" должен быть применен к контейнеру <ul>
вместо самого <ul>
:
<div class="dropup">
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
</div>
См. http://jsfiddle.net/ZgyZP/5/
Оригинальный рабочий ответ, который не использует загрузку:
Вы можете использовать javascript для вычисления высоты подменю, а затем отрицательно смещать позицию подменю.
что-то вроде (с jQuery):
$('.dropdown-submenu').hover(
function(){
//hover in
$('.dropdown-submenu > ul').css('top', '-' + $('.dropdown-submenu > ul').css('height'));
},
//hover out
function(){
}
);
Fiddle: http://jsfiddle.net/ZgyZP/4/
Ответ 2
Лучшее решение:
<div class="dropup">
<ul class="dropdown-menu"></ul>
</div>
Это родной класс в бутстрапе. Загрузочный файл (с использованием 3.1.1) css файла имеет селектор .dropup .dropdown-menu
, так что, как я узнал.
Ответ 3
Используйте класс, например вверх <ul class="dropdown up">
Напишите стиль вверх .up { bottom:100% !important; top:auto !important; }
Примечание. Увеличьте дно в соответствии с размером кнопки.
Ответ 4
<div class="dropup">
<ul class="dropdown-menu"></ul>
</div>
Вышеприведенный код верен, но не работает, если родительский элемент не имеет свойства позиции.
Примеры, которые работают class="col-lg-12"
или просто
<div style="position: relative;">
Я использую Bootstrap v3.0.0.
Ответ 5
Я использовал класс dropup, и он работал отлично, как я ожидал.
<div class="col-md-6 dropup">
<span uib-dropdown auto-close="outsideClick">
<p class="input-group">
<input type="text" class="form-control" ng-model="int.schTimeFormatted" ng-disabled="true" name="schTime" />
<span class="input-group-btn">
<button type="button" class="btn btn-default cal" uib-dropdown-toggle>
<i class="glyphicon glyphicon-time"></i>
</button>
</span>
</p>
<ul class="dropdown-menu" uib-dropdown-menu aria-labelledby="simple-dropdown">
<li class="timerDropdown">
<div class="row">
<div class="col-md-6">
<div uib-timepicker ng-model="int.schTime" ng-change="changed()" hour-step="hstep" minute-step="mstep" readonly-input="true" min="min"
max="max" show-meridian="ismeridian"></div>
</div>
<div>
Booked Timeslots
<ul id="timeListB">
<li ng-repeat="time in bookedTimeslots">{{time | date:"h:mma"}}</li>
</ul>
</div>
</div>
<hr>
<button class="pull-right">close</button>
</li>
</ul>
</span>
</div>