1/* 2Name: Architecture 2 3Written by: Okler Themes - (http://www.okler.net) 4Theme Version: 12.1.0 5*/ 6 7(($ => { 8 /* 9 * Slider Background 10 */ 11 const $slider = $('#slider'); 12 13 let direction = ''; 14 15 $slider.on('click', '.owl-next', () => { 16 direction = 'next'; 17 }); 18 19 $slider.on('click', '.owl-prev', () => { 20 direction = 'prev'; 21 }); 22 23 $slider.on('changed.owl.carousel', ({item}) => { 24 25 $('.custom-slider-background .custom-slider-background-image-stage').each(function(){ 26 const $stage = $(this), $stageOuter = $stage.closest('.custom-slider-background-image-stage-outer'), $currentItem = $stage.find('.custom-slider-background-image-item').eq( item.index ), nItems = $stage.find('.custom-slider-background-image-item').length; 27 28 const distance = $stage.hasClass('reverse') ? ( $currentItem.outerHeight() * nItems ) - ( $currentItem.outerHeight() * ( item.index + 1 ) ) : $currentItem.outerHeight() * item.index, mathSymbol = $stage.hasClass('reverse') ? '-' : '-'; 29 30 $stage.css({ 31 transform: 'translate3d(0, '+ mathSymbol + distance +'px, 0)' 32 }); 33 }); 34 35 }); 36 37 // Once we have all ready, show the slider 38 $slider.on('initialized.owl.carousel', () => { 39 setTimeout(() => { 40 $('.custom-slider-background').addClass('show'); 41 }, 800); 42 }); 43 44 // Hide nav on first load of page 45 $slider.on('initialized.owl.carousel', () => { 46 setTimeout(() => { 47 $slider.find('.owl-nav').addClass('hide'); 48 }, 200); 49 }); 50 51 // Show nav once the slider animation is completed 52 $('.custom-slider-background').parent().on('transitionend', () => { 53 setTimeout(() => { 54 $slider.find('.owl-nav').addClass('show'); 55 $('.custom-slider-background').addClass('custom-box-shadow-1'); 56 }, 2000); 57 }); 58 59 /* 60 * Page Header 61 */ 62 $('.custom-page-header-1-wrapper > div').on('animationend', () => { 63 setTimeout(() => { 64 $('.custom-page-header-1-wrapper').addClass('custom-box-shadow-1'); 65 }, 1000); 66 }); 67 68 /* 69 * Load More - Projects 70 */
71 const loadMore = { 72 73 pages: 0, 74 currentPage: 1, 75 $wrapper: $('#loadMoreWrapper'), 76 $btn: $('#loadMore'), 77 $btnWrapper: $('#loadMoreBtnWrapper'), 78 $loader: $('#loadMoreLoader'), 79 80 build() { 81 82 const self = this; 83 84 self.pages = self.$wrapper.data('total-pages'); 85 86 if(self.pages <= 1) { 87 88 self.$btnWrapper.remove(); 89 return; 90 91 } else { 92 93 // init isotope 94 self.$wrapper.isotope(); 95 96 self.$btn.on('click', () => { 97 self.loadMore(); 98 }); 99 100 // Lazy Load 101 if(self.$btn.hasClass('btn-lazy-load')) { 102 theme.fn.intObs( '#loadMore', "$('#loadMore').trigger('click');", { 103 rootMargin: '0px 0px 0px 0px' 104 } ); 105 } 106 107 } 108 109 }, 110 loadMore() { 111 112 const self = this; 113 114 self.$btn.css({ 115 opacity: 0 116 }); 117 self.$loader.show(); 118 119 // Ajax 120 $.ajax({ 121 url: 'ajax/demo-architecture-2-ajax-projects-load-more-' + (parseInt(self.currentPage)+1) + '.html', 122 complete({responseText}) { 123 124 const $items = $(responseText); 125 126 setTimeout(() => { 127 128 self.$wrapper.append($items) 129 130 self.$wrapper.isotope('appended', $items); 131 132 self.currentPage++; 133 134 if(self.currentPage < self.pages) { 135 self.$btn.css({ 136 opacity: 1 137 }).blur(); 138 } else { 139 self.$btnWrapper.remove(); 140 } 141 142 self.$loader.hide(); 143 144 }, 1000); 145 146 } 147 }); 148 149 } 150 151 }; 152 153 if($('#loadMoreWrapper').get(0)) { 154 loadMore.build(); 155 } 156})).apply( this, [ jQuery ]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.