Metronic customizes the
Bootstrap Modal through the SASS variables in
src/sass/components/_variables.scssand adds additonal options in
src/sass/components/_modal.scss.
Basic Example
Click the below toggle button to see a slightly customized modal with custom close icon button.
Modal title
Modal body text goes here.
<buttontype="button"class="btn btn-primary"data-bs-toggle="modal"data-bs-target="#kt_modal_1">
Launch demo modal
</button><divclass="modal fade"tabindex="-1"id="kt_modal_1"><divclass="modal-dialog"><divclass="modal-content"><divclass="modal-header"><h5class="modal-title">Modal title</h5><!--begin::Close--><divclass="btn btn-icon btn-sm btn-active-light-primary ms-2"data-bs-dismiss="modal"aria-label="Close"><spanclass="svg-icon svg-icon-2x"></span></div><!--end::Close--></div><divclass="modal-body"><p>Modal body text goes here.</p></div><divclass="modal-footer"><buttontype="button"class="btn btn-light"data-bs-dismiss="modal">Close</button><buttontype="button"class="btn btn-primary">Save changes</button></div></div></div></div>
Fullscreen
Add
.modal-fullscreenclass to enable a modal with fullscreen mode. Add
.bg-whiteand
.shadow-noneclasses to fix background color and unwanted shadow issue when modal has a long scrollable content.
Click the below toggle button to see a draggable modal. Please refer to the Javascript below for implementation.
The draggable action is triggered by a
mousedownevent. Therefore, not compatible on mobile devices.
// Make the DIV element draggable:var element = document.querySelector('#kt_modal_3');dragElement(element);functiondragElement(elmnt){var pos1 =0, pos2 =0, pos3 =0, pos4 =0;if(elmnt.querySelector('.modal-content')){// if present, the header is where you move the DIV from:
elmnt.querySelector('.modal-content').onmousedown = dragMouseDown;}else{// otherwise, move the DIV from anywhere inside the DIV:
elmnt.onmousedown = dragMouseDown;}functiondragMouseDown(e){
e = e || window.event;
e.preventDefault();// get the mouse cursor position at startup:
pos3 = e.clientX;
pos4 = e.clientY;
document.onmouseup = closeDragElement;// call a function whenever the cursor moves:
document.onmousemove = elementDrag;}functionelementDrag(e){
e = e || window.event;
e.preventDefault();// calculate the new cursor position:
pos1 = pos3 - e.clientX;
pos2 = pos4 - e.clientY;
pos3 = e.clientX;
pos4 = e.clientY;// set the element's new position:
elmnt.style.top =(elmnt.offsetTop - pos2)+"px";
elmnt.style.left =(elmnt.offsetLeft - pos1)+"px";}functioncloseDragElement(){// stop moving when mouse button is released:
document.onmouseup =null;
document.onmousemove =null;}}