UNPKG

zoomla

Version:

16年专业研发|中文alexa排名第一的CMS品牌-基于dotNET core、功能强大,集成站群、微信开发、小程序与ERP及OA办公系统,支持国际语言和多民族语言,世界五百强与大型门户专用高端网站内核CMS系统

201 lines (135 loc) 4.55 kB
jQuery(function($){ // ----------------------------------------------------------------------------------- // Examples // ----------------------------------------------------------------------------------- // Function for populating lists with placeholder items function populate( container, count, offset ){ var output = ''; offset = isNaN(offset) ? 0 : offset; for( var i = 0; i<count; i++ ){ output += '<li>'+(offset+i)+'</li>'; } return $(output).appendTo(container); } // Populate list items $('ul[data-items]').each(function(i,e){ var items = parseInt( $(e).data('items'), 10 ); populate( e, items ); }); // Activate section (it misbehaves when sly is called on hidden sections) $(document).on('activated', function( event, sectionId ){ var $section = $('#'+sectionId); if( $section.data('examplesLoaded') ){ return; } switch( sectionId ){ case 'infinite': var $frame = $section.find('.frame'), $ul = $frame.find('ul').eq(0), $scrollbar = $section.find('.scrollbar'), $buttons = $section.find('.controlbar [data-action]'); populate( $ul, 10 ); $frame.on('sly:move', function( e, pos ){ if( pos.cur > pos.max - 100 ){ populate( $ul, 10, $ul.children().length-1 ); $frame.sly('reload'); } }).sly({ itemNav: 'basic', scrollBy: 1, scrollBar: $scrollbar }); // Controls $buttons.on('click', function(e){ var action = $(this).data('action'); switch(action){ case 'reset': $frame.sly('toStart'); setTimeout(function(){ $ul.find('li').slice(10).remove(); $frame.sly('reload'); }, 200); break; default: $frame.sly(action); } }); break; default: // Call sly instances $section.find(".slyWrap").each(function(i,e){ //if( i != 3 ) return; var cont = $(this), frame = cont.find(".sly"), slidee = frame.find("ul"), scrollbar = cont.find(".scrollbar"), pagesbar = cont.find(".pages"), options = frame.data("options"), controls = cont.find(".controls"), prevButton = controls.find(".prev"), nextButton = controls.find(".next"), prevPageButton = $("#prevPageBtn"), nextPageButton = $("#nextPageBtn"); options = $.extend( {}, options, { scrollBar: scrollbar, pagesBar: pagesbar, prev: prevButton, next: nextButton, prevPage: prevPageButton, nextPage: nextPageButton, disabledClass: 'btn-disabled' }); // Call sly frame.sly( options ); // Bind controls cont.find("button").click(function(){ var action = $(this).data('action'), arg = $(this).data('arg'); switch(action){ case 'add': slidee.append( slidee.children().slice(-1).clone().removeClass().text(function(i,text){ return text/1 + 1; }) ); frame.sly('reload'); break; case 'remove': slidee.find("li").slice(-1).remove(); frame.sly('reload'); break; default: frame.sly(action, arg); } }); }); } $section.data('examplesLoaded', true); }); // ----------------------------------------------------------------------------------- // Page navigation // ----------------------------------------------------------------------------------- // Navigation var $nav = $('#nav'), $sections = $('#sections').children(), activeClass = 'active'; // Tabs $nav.on('click', 'a', function(e){ e.preventDefault(); activate( $(this).attr('href').substr(1) ); }); // Back to top button $('a[href="#top"]').on('click', function(e){ e.preventDefault(); $(document).scrollTop(0); }); // Activate a section function activate( sectionID, initial ){ sectionID = sectionID && $sections.filter('#'+sectionID).length ? sectionID : $sections.eq(0).attr('id'); $nav.find('a').removeClass(activeClass).filter('[href=#'+sectionID+']').addClass(activeClass); $sections.hide().filter('#'+sectionID).show(); if( !initial ){ window.location.hash = '!' + sectionID; } $(document).trigger('activated', [ sectionID ] ); } // Activate initial section activate( window.location.hash.match(/^#!/) ? window.location.hash.substr(2) : 0, 1 ); // ----------------------------------------------------------------------------------- // Additional plugins // ----------------------------------------------------------------------------------- // Trigger prettyPrint //prettyPrint(); });