JavaScript Modal
jSuites provides a lightweight native JavaScript plugin for creating responsive and versatile modals. It works seamlessly with your favourite frameworks like React, Angular, Vue, web components, or even pure JavaScript.
Documentation
Section titled “Documentation”Available Methods
Section titled “Available Methods”| Method | Description |
|---|---|
open() | Open the modal |
close() | Close the modal |
Initialization properties
Section titled “Initialization properties”| Property | Description |
|---|---|
url: string | Open the content from a remote URL. |
closed: boolean | Create the modal but keep it closed. |
width: number | The width size of your modal |
height: number | The height size of your modal |
title: string | The title shown of your modal |
backdrop: boolean | Don't show the backdrop |
Events
Section titled “Events”| Event | Description |
|---|---|
onopen | A method is execute when the modal is opened. (element: HTMLElement, instance: JSON) => void |
onclose | A method is execute when the modal is closed. (element: HTMLElement, instance: JSON) => void |
Examples
Section titled “Examples”JavaScript Web Component Modal
Section titled “JavaScript Web Component Modal”This example shows how to create and use a modal with the custom HTML tag provided by the jSuites.modal plugin, enabling seamless integration as a web component.
<html>
<script src="https://jsuites.net/v6/jsuites.js"></script>
<script src="https://jsuites.net/v6/jsuites.webcomponents.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v6/jsuites.css" type="text/css" />
<jsuites-modal title="Webcomponent Modal" closed="true" width="600" height="480">
This is an example how to create a modal based on the custom HTML javascript modal.
</jsuites-modal>
<input type='button' value='Open the modal'
onclick="document.querySelector('jsuites-modal').modal.open()" class='plain'>
<script>
document.querySelector('jsuites-modal').addEventListener('onopen', function() {
console.log('Modal is open');
});
document.querySelector('jsuites-modal').addEventListener('onclose', function() {
console.log('Modal is closed');
});
</script>
</html>JavaScript Modal
Section titled “JavaScript Modal”This example demonstrates a basic modal implementation with event handling.
Modal with no title content
<html>
<script src="https://jsuites.net/v6/jsuites.js"></script>
<script src="https://jsuites.net/v6/jsuites.webcomponents.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v6/jsuites.css" type="text/css" />
<div id="basic-modal" title="My Modal">
Modal with no title content
</div>
<input type="button" value="Open the modal" id="basic-modal-button" />
<script>
let modal = jSuites.modal(document.getElementById('basic-modal'), {
closed: true,
width: 600,
height: 480,
onopen: function(el, instance) {
console.log('Modal is open');
},
onclose: function(el, instance) {
console.log('Modal is closed');
}
});
document.getElementById('basic-modal-button').addEventListener('click', function() {
modal.open();
});
</script>
</html>import { Modal } from 'jsuites/react'
import { useRef } from 'react'
import 'jsuites/dist/jsuites.css'
export default function App() {
const modal = useRef(null);
const onOpen = function(el, instance) {
console.log('Modal is open');
}
const onClose = function(el, instance) {
console.log('Modal is closed');
}
const handleOpen = function() {
modal.current.open();
}
return (
<div className="App">
<Modal ref={modal} closed={true} width={600} height={480} onopen={onOpen} onclose={onClose}>
This is an example how to create a modal based on the custom HTML javascript modal.
</Modal>
<button onClick={handleOpen} className='plain'>Open the modal</button>
</div>
);
}<template>
<Modal ref="modal" :closed="true" :width="600" :height="480" :onopen="onOpen" :onclose="onClose">
This is an example how to create a modal based on the custom HTML javascript modal.
</Modal>
<button @click="handleOpen" className="plain">Open the modal</button>
</template>
<script>
import { Modal } from "jsuites/vue";
import 'jsuites/dist/jsuites.css'
export default {
name: 'App',
components: {
Modal
},
methods: {
onOpen: function() {
console.log('Modal is open');
},
onClose: function() {
console.log('Modal is closed');
},
handleOpen: function() {
this.$refs.modal.current.open();
}
}
}
</script>Create Modal from HTML Content
Section titled “Create Modal from HTML Content”This example demonstrates how to use jSuites.modal to initialize a modal directly from an existing DOM element. The modal is created without specifying a title, showcasing a simple and flexible approach to working with predefined HTML content.
Modal with no title content
<html>
<script src="https://jsuites.net/v6/jsuites.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v6/jsuites.css" type="text/css" />
<div id='modal'>
Modal with no title content
</div>
<input type='button' value='Click here to open the modal' class='plain' id="btn">
<script>
var modal = jSuites.modal(document.getElementById('modal'), {
width: '600px',
height: '480px',
closed: true,
});
btn.addEventListener('click', function() {
modal.open()
})
</script>
</html>import { Modal } from 'jsuites/react'
import { useRef } from 'react'
import 'jsuites/dist/jsuites.css'
function App() {
const modal = useRef(null);
const handleOpen = function() {
modal.current.open()
}
return (
<div className="App">
<Modal ref={modal} closed={true} width={600} height={480}>
Modal with no title content
</Modal>
<button onClick={handleOpen} className='plain'>Click here to open the modal</button>
</div>
);
}
export default App;<template>
<Modal ref="modal" :closed="true" :width="600" :height="480">
Modal with no title content
</Modal>
<button @click="handleOpen" className="plain">Click here to open the modal</button>
</template>
<script>
import { Modal } from "jsuites/vue";
import 'jsuites/dist/jsuites.css'
export default {
name: 'App',
components: {
Modal
},
methods: {
handleOpen: function() {
this.$refs.modal.current.open()
}
}
}
</script>More Examples
Section titled “More Examples”Related Tools
Section titled “Related Tools”- LemonadeJS Modal - Reactive modal component with framework integration