Position popup open in EJ2 TypeScript Drop down button control
31 Aug 20233 minutes to read
Popup open position can be changed according to the requirement. Popup open position can be changed in open
event by setting top
and left
for the popup element.
In the following example, the top
position of the popup element is changed in open
event.
import { DropDownButton, ItemModel, OpenCloseMenuEventArgs, BeforeOpenCloseMenuEventArgs } from '@syncfusion/ej2-splitbuttons';
import { enableRipple } from '@syncfusion/ej2-base';
enableRipple(true);
//Initialize action items.
let items: ItemModel[] = [
{
text: 'Cut'
},
{
text: 'Copy'
},
{
text: 'Paste'
}];
// Initialize the DropDownButton component.
let drpDownBtn: DropDownButton = new DropDownButton({
items: items,
cssClass: 'e-caret-up',
// To position dropDownButton popup.
open: (args: OpenCloseMenuEventArgs) => {
args.element.parentElement.style.top = drpDownBtn.element.getBoundingClientRect().top - args.element.parentElement.offsetHeight +'px';
}
});
// Render initialized DropDownButton.
drpDownBtn.appendTo('#element');
<!DOCTYPE html>
<html lang="en">
<head>
<title>EJ2 DropDownButton</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Typescript UI Controls" />
<meta name="author" content="Syncfusion" />
<link href="https://cdn.syncfusion.com/ej2/28.1.33/ej2-base/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/28.1.33/ej2-buttons/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/28.1.33/ej2-popups/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/28.1.33/ej2-splitbuttons/styles/material.css" rel="stylesheet" />
<link href="styles.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>
</head>
<body>
<div id='loader'>LOADING....</div>
<div id='container'>
<button id='element'>Clipboard</button>
</div>
</body>
</html>
#container {
visibility: hidden;
}
#loader {
color: #008cff;
height: 40px;
left: 45%;
position: absolute;
top: 45%;
width: 30%;
}
button {
margin: 25% 5px 20px 30%;
}
.e-caret-up .e-caret::before {
content: '\e918';
}