123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- ;(function($) {
- $.fn.nc_slider = function(options) {
- var defaults = {
- animate: 400,
- timeout: 5000,
- pagination: true,
- pagination_class: 'full-screen-slides-pagination'
- };
- var settings = $.extend({}, defaults, options);
- function nc_slider($slider) {
- var slider = {
- timer: null,
- $items: null,
- items_count: null,
- max_index: null,
- $pagination: null,
- auto: true,
- current: 0
- };
- function init() {
- slider.$items = $slider.children();
- slider.items_count = slider.$items.length;
- if(slider.items_count <= 1) {
- return;
- }
- slider.max_index = slider.items_count - 1;
- slider.$items.hide();
- //初始化导航
- if(settings.pagination) {
- //生成导航按钮
- var pagination_html = '<ul class="' + settings.pagination_class + '">';
- for (var i = 1; i <= slider.items_count; i++) {
- pagination_html += '<li>' + '<a href="javascript:;">' + i + '</a>' + '</li>';
- }
- pagination_html += '</ul>';
- $slider.after(pagination_html);
- slider.$pagination = $slider.next('ul').find('li');
- //导航按钮单击切换
- slider.$pagination.on('click', function() {
- var next = $(this).index();
- go(next);
- });
- //鼠标移动到导航按钮上暂停自动播放
- slider.$pagination.mouseenter(function() {
- slider.auto = false;
- });
- slider.$pagination.mouseleave(function() {
- slider.auto = true;
- });
- }
- next();
- }
- function go(next) {
- slider.$items.eq(slider.current).fadeOut(settings.animate);
- slider.$items.eq(next).fadeIn(settings.animate);
- slider.current = next;
- if(settings.pagination) {
- slider.$pagination.eq(next).addClass('current').siblings('li').removeClass('current');
- }
- }
- function next() {
- if (slider.auto) {
- if (slider.current >= slider.max_index || slider.timer === null) {
- go(0);
- } else {
- go(slider.current + 1);
- }
- }
- slider.timer = setTimeout(next, settings.timeout);
- }
- init();
- }
- return this.each(function() {
- nc_slider($(this));
- });
- };
- })(jQuery);
|