(function ($) { $.tSlider = function (container, options) { this.options = {}; this.context = container.parent(); container.css('position', 'relative'); this.child = container.children(); this.page = null; this.pages = []; this.current = 0; this.interval = null; var plugin = this; container.data('slider', plugin); this.next = function () { plugin.current++; if (plugin.current >= $('.pointer', plugin.context).size()) plugin.current = 0; plugin.moveTo(plugin.current); } this.prev = function () { plugin.current--; if (plugin.current < 0) plugin.current = $('.pointer', plugin.context).size() - 1; plugin.moveTo(plugin.current); } this.moveTo = function (index) { clearInterval(plugin.interval); $('.page.current', plugin.context) .fadeOut() .toggleClass('current'); $('.page', plugin.context).eq(index) .toggleClass('current') .fadeIn(); $('.pointer.current', plugin.context) .toggleClass('current'); $('.pointer', plugin.context).eq(index) .toggleClass('current'); plugin.interval = setInterval(plugin.next, options.autoPlay.interval); } this.init = function (element, options) { this.options = $.extend({}, $.tSlider.optionsDefault, options); var pagination = $('
' + options.arrows.right + '
')
.addClass('next')
.bind('click', this.next);
var prevBtn = $('' + options.arrows.left + '
')
.addClass('prev')
.bind('click', this.prev);
container
.after(nextBtn)
.after(prevBtn);
}
}
if (options.autoPlay != false) {
this.interval = setInterval(this.next, options.autoPlay.interval);
}
}
this.init(container, options);
}
$.fn.tSlider = function (options) {
return $(this).each(function () {
(new $.tSlider($(this), options));
});
}
$.tSlider.optionsDefault = {
pageSize: 4,
startPage: 1,
arrows: {
left: '<',
right: '>'
},
autoPlay: {
interval: 2000
},
pagination: {
className: 'pagination',
pointer: false
}
}
})(jQuery);
No hay comentarios:
Publicar un comentario
Gracias por tu comentario. Tú opinión es muy valiosa.