/*!
* jQuery Tickerme Plugin v1.0
*/
(function($){
$.fn.tickerme = function(options) {
var opts = $.extend( {}, $.fn.tickerme.defaults, options );
return this.each(function(){
var ticker = $(this);
// SVG definitions for the play/pause/previous/next controls:
var control_definitions = ' ';
var control_styles = '';
// Array to contain news contents:
var contents = [];
var position = -1;
var timer;
init();
/* Initialise */
function init() {
// Hide all:
$(ticker).hide();
// Create the buttons:
$('body').prepend(control_definitions).prepend(control_styles);
var controls = '
';
controls += '
';
controls += '
';
controls += '
';
controls += '
';
controls += '
';
controls += '
';
controls += '
';
controls += '
';
$(controls).insertAfter(ticker);
// Load up the array:
$(ticker).children().each(function(i){
contents[i] = ($(this).html());
});
load_container();
}
/* load_container */
function load_container() {
if (position == (contents.length - 1)) {
position = 0;
} else {
position++;
}
// Fade out the current item, replace it with the next one, and fade it in:
if (opts.type == 'fade') {
$('#news').fadeOut(opts.fade_speed,function(){
$('#newscontent').html(''+contents[position]+'
');
$('#news').fadeIn(opts.fade_speed);
});
}
timer = setTimeout(load_container,opts.duration);
}
/* Control functions */
$('a#pause_trigger').click(function() {
clearTimeout(timer);
$(this).hide();
$('#play_trigger').show();
return false;
});
$('a#play_trigger').click(function(){
load_container();
$(this).hide();
$('#pause_trigger').show();
return false;
});
$('a#prev_trigger').click(function(){
if (position == 0) {
position = (contents.length - 1);
} else {
position--;
}
$('#newscontent').html(''+contents[position]+'
');
if (opts.auto_stop) $('a#pause_trigger').trigger('click');
return false;
});
$('a#next_trigger').click(function(){
if (position == (contents.length - 1)) {
position = 0;
} else {
position++;
}
$('#newscontent').html(''+contents[position]+'
');
if (opts.auto_stop) $('a#pause_trigger').trigger('click');
return false;
});
});
};
$.fn.tickerme.defaults = {
fade_speed: 500,
duration: 3000,
auto_stop: true,
type: 'fade',
control_colour: '#333333',
control_rollover: '#666666'
};
}(jQuery));