1
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-08-13 17:14:04 +02:00
This commit is contained in:
Mark Otto
2017-05-26 20:20:10 -07:00
parent c8c51186f5
commit 4282d892f3
11 changed files with 81 additions and 23 deletions

40
js/dist/dropdown.js vendored
View File

@@ -54,7 +54,10 @@ var Dropdown = function ($) {
var ClassName = {
DISABLED: 'disabled',
SHOW: 'show'
SHOW: 'show',
DROPUP: 'dropup',
MENURIGHT: 'dropdown-menu-right',
MENULEFT: 'dropdown-menu-left'
};
var Selector = {
@@ -67,7 +70,9 @@ var Dropdown = function ($) {
var AttachmentMap = {
TOP: 'top-start',
BOTTOM: 'bottom-start'
TOPEND: 'top-end',
BOTTOM: 'bottom-start',
BOTTOMEND: 'bottom-end'
};
var Default = {
@@ -129,10 +134,15 @@ var Dropdown = function ($) {
return;
}
// Handle dropup
var dropdownPlacement = $(this._element).parent().hasClass('dropup') ? AttachmentMap.TOP : this._config.placement;
this._popper = new Popper(this._element, this._menu, {
placement: dropdownPlacement,
var element = this._element;
// for dropup with alignment we use the parent as popper container
if ($(parent).hasClass(ClassName.DROPUP)) {
if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
element = parent;
}
}
this._popper = new Popper(element, this._menu, {
placement: this._getPlacement(),
modifiers: {
offset: {
offset: this._config.offset
@@ -208,6 +218,24 @@ var Dropdown = function ($) {
return this._menu;
};
Dropdown.prototype._getPlacement = function _getPlacement() {
var $parentDropdown = $(this._element).parent();
var placement = this._config.placement;
// Handle dropup
if ($parentDropdown.hasClass(ClassName.DROPUP) || this._config.placement === AttachmentMap.TOP) {
placement = AttachmentMap.TOP;
if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.TOPEND;
}
} else {
if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
placement = AttachmentMap.BOTTOMEND;
}
}
return placement;
};
// static
Dropdown._jQueryInterface = function _jQueryInterface(config) {

File diff suppressed because one or more lines are too long

2
js/dist/popover.js vendored
View File

@@ -35,7 +35,7 @@ var Popover = function ($) {
placement: 'right',
trigger: 'click',
content: '',
template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-title"></h3>' + '<div class="popover-content"></div></div>'
template: '<div class="popover" role="tooltip">' + '<div class="arrow" x-arrow></div>' + '<h3 class="popover-title"></h3>' + '<div class="popover-content"></div></div>'
});
var DefaultType = $.extend({}, Tooltip.DefaultType, {

File diff suppressed because one or more lines are too long

3
js/dist/tooltip.js vendored
View File

@@ -51,6 +51,7 @@ var Tooltip = function ($) {
};
var AttachmentMap = {
AUTO: 'auto',
TOP: 'top',
RIGHT: 'right',
BOTTOM: 'bottom',
@@ -59,7 +60,7 @@ var Tooltip = function ($) {
var Default = {
animation: true,
template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
template: '<div class="tooltip" role="tooltip">' + '<div class="arrow" x-arrow></div>' + '<div class="tooltip-inner"></div></div>',
trigger: 'hover focus',
title: '',
delay: 0,

File diff suppressed because one or more lines are too long