}
const ClassName = {
- DISABLED : 'disabled',
- SHOW : 'show'
+ DISABLED : 'disabled',
+ SHOW : 'show',
+ DROPUP : 'dropup',
+ MENURIGHT : 'dropdown-menu-right',
+ MENULEFT : 'dropdown-menu-left'
}
const Selector = {
}
// Handle dropup
- const dropdownPlacement = $(this._element).parent().hasClass('dropup') ? AttachmentMap.TOP : this._config.placement
+ const dropdownPlacement = $(this._element).parent().hasClass(ClassName.DROPUP) ? AttachmentMap.TOP : this._config.placement
this._popper = new Popper(this._element, this._menu, {
placement : dropdownPlacement,
modifiers : {
},
flip : {
enabled : this._config.flip
+ },
+ beforeApplyStyle: {
+ order: 899, // 900 is the order of applyStyle
+ enabled: true,
+ fn: this._beforePopperApplyStyle
}
}
})
return this._menu
}
+ _beforePopperApplyStyle(data) {
+ if ($(data.instance.popper).hasClass(ClassName.MENURIGHT)) {
+ data.styles = {
+ right: 0,
+ left: 'auto'
+ }
+ }
+
+ if ($(data.instance.popper).hasClass(ClassName.MENULEFT)) {
+ data.styles = {
+ right: 'auto',
+ left: 0
+ }
+ }
+ return data
+ }
+
// static
static _jQueryInterface(config) {
</li>
</ul>
- <!-- Default dropup button -->
- <div class="btn-group dropup" style="margin-top: 60px;">
- <button type="button" class="btn btn-secondary">Dropup</button>
- <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <span class="sr-only">Toggle Dropdown</span>
- </button>
- <div class="dropdown-menu">
- <a class="dropdown-item" href="#">Action</a>
- <a class="dropdown-item" href="#">Another action</a>
- <a class="dropdown-item" href="#">Something else here</a>
+ <div class="row">
+ <div class="col-sm-12 mt-4">
+ <!-- Default dropup button -->
+ <div class="btn-group dropup">
+ <button type="button" class="btn btn-secondary">Dropup</button>
+ <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ <span class="sr-only">Toggle Dropdown</span>
+ </button>
+ <div class="dropdown-menu">
+ <a class="dropdown-item" href="#">Action</a>
+ <a class="dropdown-item" href="#">Another action</a>
+ <a class="dropdown-item" href="#">Something else here</a>
+ </div>
+ </div>
+
+ <div class="btn-group">
+ <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ This dropdown's menu is right-aligned
+ </button>
+ <div class="dropdown-menu dropdown-menu-right">
+ <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 class="btn-group">
+ <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ This dropdown's menu is left-aligned
+ </button>
+ <div class="dropdown-menu dropdown-menu-left">
+ <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>
- </div>
<script src="../../../docs/assets/js/vendor/jquery-slim.min.js"></script>
<script src="../../../docs/assets/js/vendor/popper.min.js"></script>