Current state
This commit is contained in:
99
public/js/jquery.newsticker.js
Normal file
99
public/js/jquery.newsticker.js
Normal file
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 2006/2007 Sam Collett (http://www.texotela.co.uk)
|
||||
* Licensed under the MIT License:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* Version 2.0
|
||||
* Demo: http://www.texotela.co.uk/code/jquery/newsticker/
|
||||
*
|
||||
* $LastChangedDate$
|
||||
* $Rev$
|
||||
*
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
/*
|
||||
* A basic news ticker.
|
||||
*
|
||||
* @name newsticker (or newsTicker)
|
||||
* @param delay Delay (in milliseconds) between iterations. Default 4 seconds (4000ms)
|
||||
* @author Sam Collett (http://www.texotela.co.uk)
|
||||
* @example $("#news").newsticker(); // or $("#news").newsTicker(5000);
|
||||
*
|
||||
*/
|
||||
$.fn.newsTicker = $.fn.newsticker = function(delay)
|
||||
{
|
||||
delay = delay || 4000;
|
||||
initTicker = function(el)
|
||||
{
|
||||
stopTicker(el);
|
||||
el.items = $("li", el);
|
||||
// hide all items (except first one)
|
||||
el.items.not(":eq(0)").hide().end();
|
||||
// current item
|
||||
el.currentitem = 0;
|
||||
startTicker(el);
|
||||
};
|
||||
startTicker = function(el)
|
||||
{
|
||||
el.tickfn = setInterval(function() { doTick(el) }, delay)
|
||||
};
|
||||
stopTicker = function(el)
|
||||
{
|
||||
clearInterval(el.tickfn);
|
||||
};
|
||||
pauseTicker = function(el)
|
||||
{
|
||||
el.pause = true;
|
||||
};
|
||||
resumeTicker = function(el)
|
||||
{
|
||||
el.pause = false;
|
||||
};
|
||||
doTick = function(el)
|
||||
{
|
||||
// don't run if paused
|
||||
if(el.pause) return;
|
||||
// pause until animation has finished
|
||||
el.pause = true;
|
||||
// hide current item
|
||||
$(el.items[el.currentitem]).fadeOut("slow",
|
||||
function()
|
||||
{
|
||||
$(this).hide();
|
||||
// move to next item and show
|
||||
el.currentitem = ++el.currentitem % (el.items.size());
|
||||
$(el.items[el.currentitem]).fadeIn("slow",
|
||||
function()
|
||||
{
|
||||
el.pause = false;
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
};
|
||||
this.each(
|
||||
function()
|
||||
{
|
||||
if(this.nodeName.toLowerCase()!= "ul") return;
|
||||
initTicker(this);
|
||||
}
|
||||
)
|
||||
.addClass("newsticker")
|
||||
.hover(
|
||||
function()
|
||||
{
|
||||
// pause if hovered over
|
||||
pauseTicker(this);
|
||||
},
|
||||
function()
|
||||
{
|
||||
// resume when not hovered over
|
||||
resumeTicker(this);
|
||||
}
|
||||
);
|
||||
return this;
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
Reference in New Issue
Block a user