0.3.2 • Published 7 years ago

jquery-asModal v0.3.2

Weekly downloads
3
License
LGPL-3.0
Repository
github
Last release
7 years ago

jQuery asModal bower NPM version Dependency Status prs-welcome

A lightweight jQuery plugin that help create a modal dialog.

Table of contents

Main files

dist/
├── jquery-asModal.js
├── jquery-asModal.es.js
├── jquery-asModal.min.js
└── css/
    ├── asModal.css
    └── asModal.min.css

Quick start

Several quick start options are available:

Download the latest build

Install From Bower

bower install jquery-asModal --save

Install From Npm

npm install jquery-asModal --save

Install From Yarn

yarn add jquery-asModal

Build From Source

If you want build from source:

git clone git@github.com:amazingSurge/jquery-asModal.git
cd jquery-asModal
npm install
npm install -g gulp-cli babel-cli
gulp build

Done!

Requirements

jquery-asModal requires the latest version of jQuery.

Usage

Including files:

<link rel="stylesheet" href="/path/to/asModal.css">
<script src="/path/to/jquery.js"></script>
<script src="/path/to/jquery-asModal.js"></script>

Required HTML structure

<button href="login.html" class="example">click to open modal</button>

Initialization

All you need to do is call the plugin on the element:

jQuery(function($) {
  $('.example').asModal(); 
});

Examples

There are some example usages that you can look at to get started. They can be found in the examples folder.

Options

jquery-asModal can accept an options object to alter the way it behaves. You can see the default options by call $.asModal.setDefaults(). The structure of an options object is as follows:

{
  namespace: 'modal', // String: Prefix string attached to the class of every element generated by the plugin
  skin: null, // set plugin skin

  content: null, // Set the URL, ID or Class.
  overlay: true, // Show the overlay.
  closeElement: null, // Element ID or Class to close the modal
  effect: 'fadeScale', // fadein | slide | newspaper | fall
  overlaySpeed: 200, // Sets the speed of the overlay, in milliseconds
  effectFallback: 'fade', // set default jquery animate when css3 animation doesn't support
  focus: true, // set focus to form element in content
  errorContent: 'sorry, ajax error.', // set ajax error content
  loadingContent: 'loading...', // set loading content

  closeByEscape: true, // Allow the user to close the modal by pressing 'ESC'.
  closeByOverlayClick: true, // Allow the user to close the modal by clicking the overlay.

  width: null, // Set a fixed total width.
  hieght: null, // Set a fixed total height.

  // Callback API
  onOpen: null, // Callback: function() - Fires when the modal open
  onClose: null // Callback: function() - Fires when the modal close
  //onComplete: null // Callback: function() - Fires when the effect end
}

Methods

Methods are called on asModal instances through the asModal method itself. You can also save the instances to variable for further use.

// call directly
$().asModal('destroy');

// or
var api = $().data('asModal');
api.destroy();

moveTo(position)

Move the modal handle to the position.

// move to 50px
$().asModal('moveTo', '50');

// move to 50%
$().asModal('moveTo', '50%');

open()

Open the modal.

$().asModal('open');

close()

Close the modal.

$().asModal('close');

enable()

Enable the modal functions.

$().asModal('enable');

disable()

Disable the modal functions.

$().asModal('disable');

destroy()

Destroy the modal instance.

$().asModal('destroy');

Events

jquery-asModal provides custom events for the plugin’s unique actions.

$('.the-element').on('asModal::ready', function (e) {
  // on instance ready
});
EventDescription
readyFires when the instance is ready for API use.
enableFired when the enable instance method has been called.
disableFired when the disable instance method has been called.
destroyFires when an instance is destroyed.

No conflict

If you have to use other plugin with the same namespace, just call the $.asModal.noConflict method to revert to it.

<script src="other-plugin.js"></script>
<script src="jquery-asModal.js"></script>
<script>
  $.asModal.noConflict();
  // Code that uses other plugin's "$().asModal" can follow here.
</script>

Browser support

Tested on all major browsers.

Latest ✓Latest ✓Latest ✓Latest ✓9-11 ✓Latest ✓

As a jQuery plugin, you also need to see the jQuery Browser Support.

Contributing

Anyone and everyone is welcome to contribute. Please take a moment to review the guidelines for contributing. Make sure you're using the latest version of jquery-asModal before submitting an issue. There are several ways to help out:

Development

jquery-asModal is built modularly and uses Gulp as a build system to build its distributable files. To install the necessary dependencies for the build system, please run:

npm install -g gulp
npm install -g babel-cli
npm install

Then you can generate new distributable files from the sources, using:

gulp build

More gulp tasks can be found here.

Changelog

To see the list of recent changes, see Releases section.

Copyright and license

Copyright (C) 2016 amazingSurge.

Licensed under the LGPL license.

⬆ back to top