Skip to content

zwebar/native-js-modals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

native-js-modals

Easily create modals without external dependencies.

Demo

For a demo, visit https://bartzweers.github.io/native-js-modals/

Installation and usage

1. Add <script> and <link> tag

<script src="./js/native-modals.min.js"></script>
<link href="./css/nmodal.css" rel="stylesheet" type="text/css" media="screen, handheld, projection">

2. Create a modal

<div id="testModal" class="nModal">
    <form action="">
        <div class="nModal-header">Modal 1</div>
        <div class="nModal-body">Body of the modal</div>
        <div class="nModal-buttons">
            <a href="" class="nModal-button nModal-button__ok" data-nmodal-callback="callback">Ok</a>
            <a href="" class="nModal-button nModal-button__cancel">Cancel</a>
        </div>
    </form>
</div>

2.b or... put in anything you'd like. as long as it follows the following pattern:

<div id="modal">
  <form action="">
    <!-- Your content here. -->
  </form>
</div>

3. Create a trigger

The data-nmodal attribute refers to the ID of the targeted modal element.

<a href="" data-nmodal="testModal">Click here</a> to open the modal.

4. Initialize

nModal.init({ watch: true });
Property Possible values Function
watch true false Automatically watches for DOM changes and injects newly created/updated modals
backdrop true false Adds a backdrop to the modal
size "small" "large" "max" Assigns a size to the modal

There are also in-line properties you can access when triggering a modal.

<a  href=""
    data-nmodal="testModal"
    data-nmodal-size="max">
    Open a maximised modal that targets #testModal
</a>

5. You're done!

If you want to further customize the modal or use callbacks and custom functions, read below.

Customization

Using callbacks

If you want to use a callback, add the data-nmodal-callback attribute to an element within the modal, like so:

<a href="" data-nmodal-callback="callback">Click to activate callback</a>
function callback(formElement){
    console.log('Callback called', formElement);
    nModal.close();
}

The callback is by default called by passing the <form></form> inside the modal, so you can use the data stored in the modal.

About

A simple native javascript plugin to add support for modals with dynamic content.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published