2017-04-07 2 views
1

click here for image 의 모든 페이지 번호가 페이지jquery.easyPaginate.js 위의 이미지 페이지 매김 페이지 매김

내가 매김 10number을 제한 할

의 모든 사용 가능한 활동을 추진하고 있습니다 때 U 다음 1 10 숨길가 마지막 하나를 클릭 그리고 다음 10

스피 나는이 같은 문제로 실행 코드

$.fn.easyPaginate = function(options) { 
    var defaults = { 
     paginateElement: 'li', 
     hashPage: 'page', 
     elementsPerPage: 10, 
     effect: 'default', 
     slideOffset: 200, 
     firstButton: true, 
     firstButtonText: '<<', 
     lastButton: true, 
     lastButtonText: '>>', 
     prevButton: true, 
     prevButtonText: '<', 
     nextButton: true, 
     nextButtonText: '>' 


    } 
    return this.each(function(instance) { 
     var plugin = { 
      nav: null, 
      el: $(this), 
      settings: { 
       pages: 0, 
       objElements: null, 
       currentPage: 1, 
       visiblePages: 10 

      } 
     }; 
     plugin.settings = $.extend({}, defaults, options); 
     plugin.settings.objElements = plugin.el.find(plugin.settings.paginateElement); 
     plugin.el.addClass('easyPaginateList'); 
     var getNbOfPages = function() { 
      return Math.ceil(plugin.settings.objElements.length/plugin.settings.elementsPerPage); 
     }; 
     var displayNav = function() { 
      htmlNav = '<div class="easyPaginateNav">'; 
      if (plugin.settings.firstButton) { 
       htmlNav += '<a href="#' + plugin.settings.hashPage + ':1" title="First page" rel="1" class="first">' + plugin.settings.firstButtonText + '</a>'; 
      } 
      if (plugin.settings.prevButton) { 
       htmlNav += '<a href="" title="Previous" rel="" class="prev">' + plugin.settings.prevButtonText + '</a>'; 
      } 
      for (i = 1; i <= plugin.settings.pages; i++) { 
       htmlNav += '<a href="#' + plugin.settings.hashPage + ':' + i + '" title="Page ' + i + '" rel="' + i + '" class="page">' + i + '</a>'; 
      }; 
      if (plugin.settings.nextButton) { 
       htmlNav += '<a href="" title="Next" rel="" class="next">' + plugin.settings.nextButtonText + '</a>'; 
      } 
      if (plugin.settings.lastButton) { 
       htmlNav += '<a href="#' + plugin.settings.hashPage + ':' + plugin.settings.pages + '" title="Last page" rel="' + plugin.settings.pages + '" class="last">' + plugin.settings.lastButtonText + '</a>'; 
      } 
      htmlNav += '</div>'; 
      plugin.nav = $(htmlNav); 
      plugin.nav.css({ 
       'width': plugin.el.width() 
      }); 

      plugin.el.after(plugin.nav); 

      plugin.nav.find('a.page, a.first, a.last').on('click', function(e) { 
       e.preventDefault(); 
       displayPage($(this).attr('rel')); 
      }); 

      plugin.nav.find('a.prev').on('click', function(e) { 
       e.preventDefault(); 
       page = plugin.settings.currentPage > 1 ? parseInt(plugin.settings.currentPage) - 1 : 1; 
       displayPage(page); 
      }); 

      plugin.nav.find('a.next').on('click', function(e) { 
       e.preventDefault(); 
       page = plugin.settings.currentPage < plugin.settings.pages ? parseInt(plugin.settings.currentPage) + 1 : plugin.settings.pages; 
       displayPage(page); 
      }); 
     }; 

     var displayPage = function(page, forceEffect) { 
      if (plugin.settings.currentPage != page) { 
       plugin.settings.currentPage = parseInt(page); 
       offsetStart = (page - 1) * plugin.settings.elementsPerPage; 
       offsetEnd = page * plugin.settings.elementsPerPage; 
       if (typeof(forceEffect) != 'undefined') { 
        eval("transition_" + forceEffect + "(" + offsetStart + ", " + offsetEnd + ")"); 
       } else { 
        eval("transition_" + plugin.settings.effect + "(" + offsetStart + ", " + offsetEnd + ")"); 
       } 

       plugin.nav.find('.current').removeClass('current'); 
       plugin.nav.find('a.page:eq(' + (page - 1) + ')').addClass('current'); 

       switch (plugin.settings.currentPage) { 
        case 1: 
         plugin.nav.find('a').removeClass('disabled'); 
         plugin.nav.find('a.first, a.prev').addClass('disabled'); 
         break; 
        case plugin.settings.pages: 
         plugin.nav.find('a').removeClass('disabled'); 
         plugin.nav.find('a.last, a.next').addClass('disabled'); 
         break; 
        default: 
         plugin.nav.find('a').removeClass('disabled'); 
         break; 
       } 
      } 
     }; 

     var transition_default = function(offsetStart, offsetEnd) { 
      plugin.currentElements.hide(); 
      plugin.currentElements = plugin.settings.objElements.slice(offsetStart, offsetEnd).clone(); 
      plugin.el.html(plugin.currentElements); 
      plugin.currentElements.show(); 
     }; 

     var transition_fade = function(offsetStart, offsetEnd) { 
      plugin.currentElements.fadeOut(); 
      plugin.currentElements = plugin.settings.objElements.slice(offsetStart, offsetEnd).clone(); 
      plugin.el.html(plugin.currentElements); 
      plugin.currentElements.fadeIn(); 
     }; 

     var transition_slide = function(offsetStart, offsetEnd) { 
      plugin.currentElements.animate({ 
       'margin-left': plugin.settings.slideOffset * -1, 
       'opacity': 0 
      }, function() { 
       $(this).remove(); 
      }); 

      plugin.currentElements = plugin.settings.objElements.slice(offsetStart, offsetEnd).clone(); 
      plugin.currentElements.css({ 
       'margin-left': plugin.settings.slideOffset, 
       'display': 'block', 
       'opacity': 0, 
       'min-width': plugin.el.width()/2 
      }); 
      plugin.el.html(plugin.currentElements); 
      plugin.currentElements.animate({ 
       'margin-left': 0, 
       'opacity': 1 
      }); 
     }; 

     var transition_climb = function(offsetStart, offsetEnd) { 
      plugin.currentElements.each(function(i) { 
       var $objThis = $(this); 
       setTimeout(function() { 
        $objThis.animate({ 
         'margin-left': plugin.settings.slideOffset * -1, 
         'opacity': 0 
        }, function() { 
         $(this).remove(); 
        }); 
       }, i * 200); 
      }); 

      plugin.currentElements = plugin.settings.objElements.slice(offsetStart, offsetEnd).clone(); 
      plugin.currentElements.css({ 
       'margin-left': plugin.settings.slideOffset, 
       'display': 'block', 
       'opacity': 0, 
       'min-width': plugin.el.width()/2 
      }); 
      plugin.el.html(plugin.currentElements); 
      plugin.currentElements.each(function(i) { 
       var $objThis = $(this); 
       setTimeout(function() { 
        $objThis.animate({ 
         'margin-left': 0, 
         'opacity': 1 
        }); 
       }, i * 200); 
      }); 
     }; 

     plugin.currentElements = $([]); 
     plugin.settings.pages = getNbOfPages(); 
     if (plugin.settings.pages > 1) { 
      plugin.el.html(); 
      // Here we go 
      displayNav(); 
      page = 1; 
      if (document.location.hash.indexOf('#' + plugin.settings.hashPage + ':') != -1) { 
       page = parseInt(document.location.hash.replace('#' + plugin.settings.hashPage + ':', '')); 
       if (page.length <= 0 || page < 1 || page > plugin.settings.pages) { 
        page = 1; 
       } 
      } 
      displayPage(page, 'default'); 
     } 
    }); 
}; 
+0

지금까지 시도한 것은 무엇입니까? 어디서 문제가 생깁니 까? –

+0

일반적으로 페이지 매김을 제한하는 것이 있습니다. visible 페이지 : 10 –

답변

0

이하로 사용하여 표시한다.

불행히도이 특정 jquery 페이지 매김 플러그인에는 이러한 옵션이없는 것으로 보입니다.

다른 플러그인을 사용하여 페이지 매김을 처리하는 것이 좋습니다. 알아! 그것은이 플러그인을 사용하는 것이 얼마나 멋지고 단순하기 때문에 가슴 아플뿐입니다. 그러나 c'est la vie!

조금만주세요. 더 좋은 방법을 연구하겠습니다.