1
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-08-10 07:37:27 +02:00

dropdown: add boundary config option (#24976)

This commit is contained in:
Troy Morehouse
2017-12-12 05:28:30 -04:00
committed by XhmikosR
parent a7e64c84ae
commit 8839c03865
3 changed files with 67 additions and 3 deletions

View File

@@ -50,7 +50,8 @@ const Dropdown = (($) => {
DROPRIGHT : 'dropright',
DROPLEFT : 'dropleft',
MENURIGHT : 'dropdown-menu-right',
MENULEFT : 'dropdown-menu-left'
MENULEFT : 'dropdown-menu-left',
POSITION_STATIC : 'position-static'
}
const Selector = {
@@ -74,12 +75,14 @@ const Dropdown = (($) => {
const Default = {
offset : 0,
flip : true
flip : true,
boundary : 'scrollParent'
}
const DefaultType = {
offset : '(number|string|function)',
flip : 'boolean'
flip : 'boolean',
boundary : '(string|element)'
}
@@ -159,6 +162,12 @@ const Dropdown = (($) => {
element = parent
}
}
// If boundary is not `scrollParent`, then set position to `static`
// to allow the menu to "escape" the scroll parent's boundaries
// https://github.com/twbs/bootstrap/issues/24251
if (this._config.boundary !== 'scrollParent') {
$(parent).addClass(ClassName.POSITION_STATIC)
}
this._popper = new Popper(element, this._menu, this._getPopperConfig())
}
@@ -276,6 +285,9 @@ const Dropdown = (($) => {
offset : offsetConf,
flip : {
enabled : this._config.flip
},
preventOverflow : {
boundariesElement : this._config.boundary
}
}
}