diff options
| author | Johann-S <[email protected]> | 2017-10-29 23:29:13 +0100 |
|---|---|---|
| committer | Mark Otto <[email protected]> | 2017-10-29 15:29:13 -0700 |
| commit | e454c8ec1e5197d959baf48fb089719bf900fb2a (patch) | |
| tree | c7222c85329f59ae8fba5c350cf1ba7538422b2e /js | |
| parent | b1623c44290b414b656bb4d9e3baaaa3093bda8f (diff) | |
| download | bootstrap-e454c8ec1e5197d959baf48fb089719bf900fb2a.tar.xz bootstrap-e454c8ec1e5197d959baf48fb089719bf900fb2a.zip | |
Add dropright and dropleft (right and left placements for our dropdown) (#23860)
* Add dropright (right placement for our dropdown)
* Add dropleft
* moves drop left arrow to the left
Diffstat (limited to 'js')
| -rw-r--r-- | js/src/dropdown.js | 14 | ||||
| -rw-r--r-- | js/tests/visual/dropdown.html | 48 |
2 files changed, 60 insertions, 2 deletions
diff --git a/js/src/dropdown.js b/js/src/dropdown.js index 18b051b89..45d061c93 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -55,6 +55,8 @@ const Dropdown = (($) => { DISABLED : 'disabled', SHOW : 'show', DROPUP : 'dropup', + DROPRIGHT : 'dropright', + DROPLEFT : 'dropleft', MENURIGHT : 'dropdown-menu-right', MENULEFT : 'dropdown-menu-left' } @@ -71,7 +73,11 @@ const Dropdown = (($) => { TOP : 'top-start', TOPEND : 'top-end', BOTTOM : 'bottom-start', - BOTTOMEND : 'bottom-end' + BOTTOMEND : 'bottom-end', + RIGHT : 'right-start', + RIGHTEND : 'right-end', + LEFT : 'left-start', + LEFTEND : 'left-end' } const Default = { @@ -227,7 +233,7 @@ const Dropdown = (($) => { _getPlacement() { const $parentDropdown = $(this._element).parent() - let placement = AttachmentMap.BOTTOM + let placement = AttachmentMap.BOTTOM // Handle dropup if ($parentDropdown.hasClass(ClassName.DROPUP)) { @@ -235,6 +241,10 @@ const Dropdown = (($) => { if ($(this._menu).hasClass(ClassName.MENURIGHT)) { placement = AttachmentMap.TOPEND } + } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) { + placement = AttachmentMap.RIGHT + } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) { + placement = AttachmentMap.LEFT } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) { placement = AttachmentMap.BOTTOMEND } diff --git a/js/tests/visual/dropdown.html b/js/tests/visual/dropdown.html index 11b89b0f2..b2e588677 100644 --- a/js/tests/visual/dropdown.html +++ b/js/tests/visual/dropdown.html @@ -93,6 +93,7 @@ </div> </div> </div> + <div class="col-sm-12 mt-4"> <div class="btn-group dropup" role="group"> <a href="#" class="btn btn-secondary">Dropup split align right</a> @@ -114,8 +115,55 @@ </div> </div> </div> + + <div class="col-sm-12 mt-4"> + <div class="btn-group dropright" role="group"> + <a href="#" class="btn btn-secondary">Dropright split</a> + <button type="button" id="dropdown-page-subheader-button-4" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + <span class="sr-only">Product actions</span> + </button> + <div class="dropdown-menu"> + <button class="dropdown-item" type="button">Action</button> + <button class="dropdown-item" type="button">Another action</button> + <button class="dropdown-item" type="button">Something else here with a long text</button> + </div> + </div> + <div class="btn-group dropright"> + <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuRight" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + Dropright + </button> + <div class="dropdown-menu" aria-labelledby="dropdownMenuRight"> + <button class="dropdown-item" type="button">Action</button> + <button class="dropdown-item" type="button">Another action</button> + <button class="dropdown-item" type="button">Something else here</button> + </div> + </div> + <!-- dropleft --> + <div class="btn-group dropleft" role="group"> + <a href="#" class="btn btn-secondary">Dropleft split</a> + <button type="button" id="dropdown-page-subheader-button-5" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + <span class="sr-only">Product actions</span> + </button> + <div class="dropdown-menu"> + <button class="dropdown-item" type="button">Action</button> + <button class="dropdown-item" type="button">Another action</button> + <button class="dropdown-item" type="button">Something else here with a long text</button> + </div> + </div> + <div class="btn-group dropleft"> + <button class="btn btn-secondary dropdown-toggle" type="button" id="dropleftMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + Dropleft + </button> + <div class="dropdown-menu" aria-labelledby="dropleftMenu"> + <button class="dropdown-item" type="button">Action</button> + <button class="dropdown-item" type="button">Another action</button> + <button class="dropdown-item" type="button">Something else here</button> + </div> + </div> </div> + </div> + </div> <script src="../../../assets/js/vendor/jquery-slim.min.js"></script> <script src="../../../assets/js/vendor/popper.min.js"></script> |
