Overview
BlockUI is an exclusive plugin of Metronic that allows element blocking with overlay and loading indicator.
Usage
BlockUI's global style and scripts bundles and are globally included in all pages.
<link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css"/>
<script src="assets/js/scripts.bundle.js"></script>
Basic Example
Click the below button to block the below content area:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Inceptos imperdiet magna! Sed fusce fames tempus litora venenatis. Ac aliquet leo hendrerit taciti viverra? Nisl suscipit potenti accumsan quis ipsum purus cursus. Suspendisse ultrices morbi in purus lectus dictum porta; Commodo penatibus nec.
var button = document.querySelector("#kt_block_ui_1_button");
var target = document.querySelector("#kt_block_ui_1_target");
var blockUI = new KTBlockUI(target);
button.addEventListener("click", function() {
if (blockUI.isBlocked()) {
blockUI.release();
button.innerText = "Block";
} else {
blockUI.block();
button.innerText = "Release";
}
});
<div class="rounded border p-10" id="kt_block_ui_1_target">
Lorem ipsum dolor sit amet....
</div>
Custom Message
Click the below button to block the below content area:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Inceptos imperdiet magna! Sed fusce fames tempus litora venenatis. Ac aliquet leo hendrerit taciti viverra? Nisl suscipit potenti accumsan quis ipsum purus cursus. Suspendisse ultrices morbi in purus lectus dictum porta; Commodo penatibus nec.
var button = document.querySelector("#kt_block_ui_2_button");
var target = document.querySelector("#kt_block_ui_2_target");
var blockUI = new KTBlockUI(target, {
message: '<div class="blockui-message"><span class="spinner-border text-primary"></span> Loading...</div>',
});
button.addEventListener("click", function() {
if (blockUI.isBlocked()) {
blockUI.release();
button.innerText = "Block";
} else {
blockUI.block();
button.innerText = "Release";
}
});
<div class="rounded border p-10" id="kt_block_ui_2_target">
Lorem ipsum dolor sit amet....
</div>
Overlay Class
Use custom class for overlay to change it's background color:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Inceptos imperdiet magna! Sed fusce fames tempus litora venenatis. Ac aliquet leo hendrerit taciti viverra? Nisl suscipit potenti accumsan quis ipsum purus cursus. Suspendisse ultrices morbi in purus lectus dictum porta; Commodo penatibus nec.
var button = document.querySelector("#kt_block_ui_3_button");
var target = document.querySelector("#kt_block_ui_3_target");
var blockUI = new KTBlockUI(target, {
overlayClass: "bg-danger bg-opacity-25",
});
button.addEventListener("click", function() {
if (blockUI.isBlocked()) {
blockUI.release();
button.innerText = "Block";
} else {
blockUI.block();
button.innerText = "Release";
}
});
<div class="rounded border p-10" id="kt_block_ui_3_target">
Lorem ipsum dolor sit amet....
</div>
Modal
Modal content blocking example:
var button = document.querySelector("#kt_block_ui_4_button");
var target = document.querySelector("#kt_block_ui_4_target");
var blockUI = new KTBlockUI(target);
button.addEventListener("click", function(e) {
e.preventDefault();
blockUI.block();
setTimeout(function() {
blockUI.release();
}, 3000);
});
<!--begin::Modal-->
<div class="modal fade" tabindex="-1" id="kt_modal_1">
<div class="modal-dialog modal-dialog-centered mw-650px">
<div class="modal-content" id="kt_block_ui_4_target">
....
</div>
</div>
</div>
<!--end::Modal-->
Methods
The following are the BlockUI's functionality methods for more control.
Name |
Description |
Constructor
|
Constructs a new instance of
KTBlockUI class and initializes a Dialer control:
var target = document.querySelector("#kt_blockui_target");
var blockUI = new KTBlockUI(target, options);
For the constructor
options refer to the next table.
|
block()
|
Block target element
|
release
|
Release target element
|
isBlocked()
|
Check if target element is blocked.
if (blockUI.isBlocked() === true) {
// do something
}
|
destroy()
|
Removes the component instance from element.
|
Static Methods |
getInstance(DOMElement element)
|
Get BlockUI instance created and bind to a target element.
var target = document.querySelector("#kt_blockui_target");
var blockUI = KTBlockUI.getInstance(target);
|
Constructor Options
All options can be passed to the construction during the plugin initialization:
Name |
Type |
Default |
Description |
zIndex
|
Object |
false |
Custom CSS z-index value of BlockUI's overlay element. |
overlayClass
|
String |
null |
Custom CSS class for BlockUI overlay element. |
overflow
|
String |
hidden |
Set's CSS overflow value if BlockUI's target does not have preset overflow value. |
message
|
String |
<span class="spinner-border text-primary"></span>
|
Sets BlockUI's HTML content centered within the target element. |
Events
Below are few events for hooking into the Bootstrap BlockUI functionality.
Event Type |
Description |
kt.blockui.block
|
This event is fired before BlockUI is blocked.
var target = document.querySelector("#kt_blockui_target");
var blockUI = new KTBlockUI(target, options);
blockUI.on("kt.blockui.block", function() {
console.log("before block");
});
|
kt.blockui.blocked
|
This event is fired after BlockUI is blocked.
var target = document.querySelector("#kt_blockui_target");
var blockUI = new KTBlockUI(target, options);
blockUI.on("kt.blockui.blocked", function() {
console.log("after blocked");
});
|
kt.blockui.release
|
This event is fired before BlockUI release.
var target = document.querySelector("#kt_blockui_target");
var blockUI = new KTBlockUI(target, options);
blockUI.on("kt.blockui.release", function() {
console.log("before release");
});
|
kt.blockui.released
|
This event is fired after BlockUI is released.
var target = document.querySelector("#kt_blockui_target");
var blockUI = new KTBlockUI(target, options);
blockUI.on("kt.blockui.released", function() {
console.log("after released");
});
|