Audero Smoke Effect
Audero Smoke Effect is a jQuery plugin that let you create a smoke effect for one or more elements, usually images, on your web page. You can create the effect of a little smoke puff, cloud or anything else you want that appears from the elements you chose. This plugin is based on the concept shown by Gaya but the code has been totally written from scratch and has new features.
Demo
A live demo is available here.
Requirements
Being a jQuery plugin, the only requirement is jQuery starting from version 1.2.3.
Compatibility
It has been tested and works on all the major browsers, including Internet Explorer 6 and later.
Audero Smoke Effect follows the UMD (Universal Module Definition) pattern to work seamlessly with module systems such as AMD and CommonJS, and the browser.
Installation
You can install Audero Smoke Effect by using npm:
npm install audero-smoke-effect
Alternatively, you can install it via Bower:
bower install audero-smoke-effect
Alternatively, you can manually download it.
Remember to include the JavaScript file after the jQuery library, ideally before the
closing body
tag:
<script src="path/to/jquery.js"></script>
<script src="path/to/jquery.auderoSmokeEffect.js"></script>
</body>
Inclusion with Browserify
To use Audero Smoke Effect with Browserify, you have to write:
require('audero-smoke-effect')();
If you want to specify the global environment and augment a specific version of jQuery, you can pass both to the plugin:
var jQuery = require('jquery');
require('audero-smoke-effect')(window, jQuery);
Usage
This plugin is very simple to use yet flexible, as you'll learn in the Options section. To use it, you have
to call the auderoSmokeEffect()
method on the element(s) you want to apply the effect passing an object with the
options you want to set. The basic use of this plugin only require that you specify the imagePath
property, to set
the path to the image that will be used for the effect.
For example, let that you have the following HTML code:
<img id="chicken" src="images/chicken.png" />
and an image called smoke.png
inside a folder called images
, you can run the effect in this way:
$('#chicken').auderoSmokeEffect({
imagePath: 'images/smoke.png'
});
Disable the effect
After you initialize the plugin, you have the chance to disable it at any time. To disable the effect, you have to
call the auderoSmokeEffect()
method passing the string disable
, as you can see in the next example:
$('#chicken').auderoSmokeEffect('disable');
Enable the effect
Once you disabled the plugin you may want to enable it again. To do this, you have to call the auderoSmokeEffect()
method passing the string enable
as shown below:
$('#chicken').auderoSmokeEffect('enable');
Toggle the effect
In some cases you may want to toggle the effect, for example based on a user action. Let's say that you want to
enable/disable the animation when a user clicks a button. To achieve this goal, you have to call the
auderoSmokeEffect()
method passing the string toggle
.
So, let that you have the following HTML code:
<img id="chicken" src="images/chicken.png" />
<button id="toggle-button">Toggle animation</button>
You can bind the click
event on the <button>
to toggle the animation as shown below:
$('#toggle-button').click(function() {
$('#chicken').auderoSmokeEffect('toggle');
});
Destroy the effect
Under some circumstances you may want to stop the animation and clean all the resources. To perform this task,
you can call the auderoSmokeEffect()
method passing the string destroy
:
$('#chicken').auderoSmokeEffect('destroy');
Options
Audero Smoke Effect has several options that allow you to create a highly customizable animation. You can set them
during the initial call to the auderoSmokeEffect()
method.
The available options are:
imagePath
(string
. Default:null
): The path to locate the smoke image. This is the only required property.isEnabled
(boolean
. Default:true
): The state of the animation. If the value is false, the animation will stop keeping its current options.width
(number
. Default:0
): The width of the image shown to simulate the smoke. If the value is0
, the width of the image will be used.height
(number
. Default:0
): The height of the image shown to simulate the smoke. If the value is0
, the height of the image will be used.repeat
(number
. Default:-1
): The number of times to repeat the animation.-1
means unlimited.pause
(number
. Default:2000
): The time (milliseconds) between animations. Set to"random"
to have a random time.speed
(number
. Default:4000
): The time (milliseconds) taken by the animation.posX
(number
. Default:null
): The X coordinate used as start point for the animation. If the value isnull
, the effect will run at the center of the element, based on its width.posY
(number
. Default:null
): The Y coordinate used as start point for the animation. If the value isnull
, the effect will run at the center of the element, based on its height.
Override default values
Audero Smoke Effect has been developed following the current
best practices in developing plugins for jQuery. Therefore, it exposes the previously cited options through the
defaults
object, allowing you to override the properties' default value. This is very useful if you usually use the
same values to run the animation. In fact, changing the default values, you don't need to specify them again when you
initialize the effect.
For example, let that you have the following code:
$('#chicken').auderoSmokeEffect({
imagePath: 'images/smoke.png',
repeat: 5,
pause: 5000,
speed: 3000
});
$('#chicken-2').auderoSmokeEffect({
imagePath: 'images/cloud.png',
repeat: 5,
pause: 5000,
speed: 3000
});
Overriding the default values you can turn it into the following:
$.fn.auderoSmokeEffect.defaults.repeat = 5;
$.fn.auderoSmokeEffect.defaults.pause = 5000;
$.fn.auderoSmokeEffect.defaults.speed = 3000;
$('#chicken').auderoSmokeEffect({
imagePath: 'images/smoke.png'
});
$('#chicken-2').auderoSmokeEffect({
imagePath: 'images/cloud.png'
});
Advanced Examples
Example 1
This first example shows the use of some of the options seen before and that is repeat
, pause
and speed
.
In this example, the animation runs exactly five times, each puff starts five seconds after the previous one, and the
animation last three seconds.
The code to achieve this goal is the following:
$('#chicken').auderoSmokeEffect({
imagePath: 'images/smoke.png',
repeat: 5,
pause: 5000,
speed: 3000
});
Example 2
This second example demonstrates how you can start the animated image from a custom point in the page, how to set a specific width and height in case you don't want to use the image's original size, and how you can start the animation only when a user clicks on a given button. Specifically, the animation will start from the top-left corner of the element.
Let that you have the following HTML code:
<img id="chicken" src="images/chicken.png" />
<button id="run-button">Run animation</button>
The code of this example is listed below:
$('#run-button').click(function() {
$('#chicken').auderoSmokeEffect({
imagePath: 'images/smoke.png',
width: 200,
height: 200,
posX: 0,
posY: 0,
repeat: 1
});
});
License
Audero Smoke Effect is dual licensed under MIT and GPL-3.0.