/*
* jQuery firefly plugin 0.2
*
*
* Copyright (c) 2010 Dharmveer Motyar
* http://motyar.blogspot.com
*
* $Id$
*
* licensed under the MIT licenses:
* http://www.opensource.org/licenses/mit-license.php
*
*
* Creates a firefly effect.
*
* @example $.firefly();
*
* @name firefly
* @type jQuery
* @cat Plugins/firefly
*/
(function($) {
/*
* Plugin defaults
*/
var defaults = {
images: ['http://dharmmotyar.googlecode.com/svn/trunk/images/spark.png', 'http://dharmmotyar.googlecode.com/svn/trunk/images//spark2.png',
'http://dharmmotyar.googlecode.com/svn/trunk/images/spark3.png', 'http://dharmmotyar.googlecode.com/svn/trunk/images/spark4.png'],
total: 10,
ofTop: 0,
ofLeft: 0,
on: 'document.body'
};
$.firefly = function(settings) {
$.firefly.settings = $.extend({}, defaults, settings);
$.firefly.eleHeight = $($.firefly.settings.on).height();
$.firefly.eleWidth = $($.firefly.settings.on).width();
if ($.firefly.settings.on != 'document.body') {
var off = $($.firefly.settings.on).offset();
$.firefly.offsetTop = off.top;
$.firefly.offsetLeft = off.left;
$.firefly.eleHeight = $($.firefly.settings.on).height();
$.firefly.eleWidth = $($.firefly.settings.on).width();
}
else {
$.firefly.offsetTop = 0;
$.firefly.offsetLeft = 0;
$.firefly.eleHeight = $(document.body).height();
$.firefly.eleWidth = $(document.body).width();
}
if ($.firefly.preloadImages()) {
for (i = 0; i < $.firefly.settings.total; i++) {
$.firefly.fly($.firefly.create($.firefly.settings.images[$.firefly.random(($.firefly.settings.images).length)]));
}
}
return;
};
/*
* Public Functions
*/
$.firefly.create = function(img) {
spark = $('<img>').attr({
'src': img
}).hide();
$("#header").append(spark);
return spark.css({
'position': 'absolute',
'z-index': -1 * $.firefly.random(20),
//under all the stuff
top: $.firefly.offsetTop + $.firefly.random(($.firefly.eleHeight - 50)),
//offsets
left: $.firefly.offsetLeft + $.firefly.random(($.firefly.eleWidth - 50)) //offsets
}).show();
}
$.firefly.fly = function(sp) {
$(sp).animate({
top: $.firefly.offsetTop + $.firefly.random(($.firefly.eleHeight - 50)),
//offsets
left: $.firefly.offsetLeft + $.firefly.random(($.firefly.eleWidth - 50))
}, (($.firefly.random(10) + 5) * 2000), function() {
$.firefly.fly(sp)
});
};
$.firefly.preloadImages = function() {
var preloads = new Object();
for (i = 0; i < ($.firefly.settings.images).length; i++) {
preloads[i] = new Image();
preloads[i].src = $.firefly.settings.images[i];
}
return true;
}
$.firefly.random = function(max) {
return Math.ceil(Math.random() * max) - 1;
}
})(jQuery);
$.firefly({
images: ['http://www.itsfirefly.com/images/fly1by1.png', 'http://www.itsfirefly.com/images/fly2by2.png'],
//Fly images
total: 165,
//number of flies
on: '#header' //id of div
});
body{
background:#111;
}
#header{
width:600px;
height:400px;
margin:25px;
}
p{
color:#000;
text-shadow:0px 0px 35px #fff;
font-family: 'Corben', cursive;
font-size:80px;
opacity:0.06;
margin:50px;
text-align:center;
}
<link href='http://fonts.googleapis.com/css?family=Corben:700' rel='stylesheet' type='text/css'>
<div id="header"><p>Firefly<br />kachibito</p</div>