1jQuery(document).ready(function($){ 2 /* 3 * INDINS slider 4 * Version: 1.0.3 5 * Company: INDINS (https://indins.ru/) 6 * Author: Kirillov Dmitry ([email protected]) 7 * 8 * */ 9 /* ---------------------------------------------------------------------------------- */ 10 $(window).load(function () { 11 indins_slider_init(); 12 indins_slider_resize(); 13 }); 14 /* ---------------------------------------------------------------------------------- */ 15 $(window, document).resize(function() { 16 indins_slider_resize(); 17 }); 18 /* ---------------------------------------------------------------------------------- */ 19 var startX, offset, dx, 20 defaultMarginBottom = $('.indins-slider').css('margin-bottom'); 21 22 $('.indins-slider').on('mouseover', function(){ 23 var slider = $(this); 24 if(slider.attr('data-interval')) { 25 var sliderID = slider.attr('data-on-page-id') * 1; 26 consultStopCallMessage(sliderID); 27 } 28 }).on('mouseout', function(){ 29 var slider = $(this); 30 if(slider.attr('data-interval')) { 31 var sliderID = slider.attr('data-on-page-id') * 1; 32 consultStartCallMessage(sliderID); 33 } 34 }).on('click', '.indins-slider-nav-arrow-left', function(){ 35 var slider = $(this).parents('.indins-slider'); 36 indins_slider_move(slider, 'left'); 37 }).on('click', '.indins-slider-nav-arrow-right', function(){ 38 var slider = $(this).parents('.indins-slider'); 39 indins_slider_move(slider, 'right'); 40 }).on('click', '.indins-slider-nav-circles li', function(){ 41 if(!$(this).hasClass('indins-slider-nav-active')) { 42 var circles_li = $(this); 43 indins_slider_move(circles_li.parents('.indins-slider'), circles_li.index()); 44 } 45 }).on('touchstart', '.indins-slider-row', function(e){ 46 startX = e.originalEvent.touches[0].pageX; 47 48 //console.clear(); 49 //console.log('startX touchstart: ' + startX); 50 }).on('touchmove', '.indins-slider-row', function(e){ 51 startX = e.originalEvent.touches[0].pageX; 52 53 //console.log('startX touchmove: ' + startX); 54 }).on('touchend', '.indins-slider-row', function(e){ 55 startX = e.originalEvent.changedTouches[0].pageX; 56 57 //console.log('startX touchend: ' + startX); 58 startX = null; 59 }); 60 /* ---------------------------------------------------------------------------------- */ 61 function indins_slider_init(){ 62 if($('.indins-slider').length){ 63 var onPageID = 0; 64 $('.indins-slider').each(function(){ 65 var slider = $(this), 66 slider_items = slider.find('.indins-slider-item'), 67 slider_items_counts = slider_items.length; 68 slider.attr('data-counts', slider_items_counts); 69 slider.attr('data-size', 0); 70 71 slider.attr('data-on-page-id', onPageID); 72 console.log('slider_init:' + slider.attr('data-on-page-id')); 73 74 if(slider.attr('data-interval')) { 75 console.log(slider.attr('data-interval')); 76 consultStartCallMessage(onPageID); 77 } 78 79 onPageID++; 80 }); 81 } 82 } 83 84 function indins_slider_resize() { 85 if($('.indins-slider').length){ 86 $('.indins-slider').each(function(){ 87 var slider = $(this), 88 slider_items = slider.find('.indins-slider-item'), 89 slider_items_counts = slider_items.length; 90 slider.attr('data-counts', slider_items_counts); 91 92 var wH = $(window).width(), 93 new_size = 0; 94 if (wH >= 1200) new_size = getSize(slider,'lg'); 95 if (wH >= 992 && wH < 1200) new_size = getSize(slider,'md'); 96 if (wH >= 768 && wH < 992) new_size = getSize(slider,'sm'); 97 if (wH >= 450 && wH < 768) new_size = getSize(slider,'xs'); 98 if (wH < 450) new_size = getSize(slider,'ws'); 99 100 indins_slider_nav_circles(slider,new_size); 101 indins_slider_nav_arrows(slider,new_size); 102 indins_slider_reset(slider, new_size); 103 indins_slider_same(slider); 104 }); 105 } 106 } 107 108 function indins_slider_same(slider){ 109 if(slider.attr('data-same') === 'true') { 110 var bestHeight = 0; 111 slider.find('.indins-slider-item').css({height: 'auto'}); 112 slider.find('.indins-slider-item').each(function(){ 113 var targetBlockHeight = $(this).outerHeight(); 114 if(targetBlockHeight>bestHeight) bestHeight = targetBlockHeight; 115 }); 116 slider.attr('data-sameHeight', bestHeight).find('.indins-slider-item').css({height: bestHeight}); 117 } 118 } 119 120 function indins_slider_reset(slider,slider_size){ 121 var view_width = slider.find('.indins-slider-area').width(), 122 view_row = slider.find('.indins-slider-row'), 123 view_items = view_row.find('.indins-slider-item'), 124 view_items_counts = view_items.length, 125 new_items_width = view_width / slider_size; 126 127 view_items.width(new_items_width); 128 view_row.width(new_items_width * view_items_counts); 129 130 slider.attr('data-move', 0); 131 slider.attr('data-size', slider_size); 132 indins_slider_move(slider, ''); 133 } 134 135 function indins_slider_nav_circles(slider,slider_size){ 136 if(slider.attr('data-circles') === 'true') { 137 if(slider.attr('data-counts')*1 > slider_size) { 138 var slider_counts = slider.attr('data-counts')*1, 139 slider_displays = Math.ceil(slider_counts / slider_size),
140 nav_circles = ''; 141 142 for (var i = 0; i < slider_displays; i++) { 143 nav_circles += '<li><span></span></li>'; 144 } 145 146 if (slider.find('.indins-slider-nav-circles').length) { 147 slider.find('.indins-slider-nav-circles').html(nav_circles); 148 } 149 else { 150 nav_circles = '<ul class="indins-slider-nav-circles">' + nav_circles + '</ul>'; 151 slider.append(nav_circles); 152 } 153 slider.css({marginBottom: slider.find('.indins-slider-nav-circles').innerHeight()}); 154 } 155 else if(slider.attr('data-counts')*1 <= slider_size && slider.find('.indins-slider-nav-circles').length) { 156 slider.find('.indins-slider-nav-circles').remove(); 157 slider.css({marginBottom:defaultMarginBottom}); 158 } 159 } 160 } 161 162 function indins_slider_nav_arrows(slider,slider_size){ 163 if(slider.attr('data-arrows') === 'true') { 164 if(!slider.find('.indins-slider-nav-arrows').length && slider.attr('data-counts')*1 > slider_size) { 165 var nav_arrows = '<div class="indins-slider-nav-arrows indins-slider-nav-arrow-left"></div>\ 166 <div class="indins-slider-nav-arrows indins-slider-nav-arrow-right"></div>'; 167 slider.append(nav_arrows); 168 169 var slider_margin = slider.find('.indins-slider-nav-arrows').innerWidth(); 170 slider.css({marginLeft:slider_margin,marginRight:slider_margin}); 171 } 172 else if(slider.attr('data-counts')*1 <= slider_size) { 173 slider.find('.indins-slider-nav-arrows').remove(); 174 slider.css({marginLeft:0,marginRight:0}); 175 } 176 } 177 } 178 179 function indins_slider_move(slider, move_direction){ 180 var slider_item = slider.find('.indins-slider-item'), 181 move_block = slider.find('.indins-slider-row'), 182 items_width = slider_item.innerWidth(), 183 items_length = slider_item.length, 184 data_move = slider.attr('data-move')*1, 185 slider_size = slider.attr('data-size')*1; 186 var move_to = 0; 187 188 if (move_direction === 'right') { 189 move_to = data_move + slider_size; 190 } 191 if (move_direction === 'left') { 192 move_to = data_move - slider_size; 193 } 194 if($.isNumeric(move_direction)) { 195 move_to = slider_size * move_direction; 196 } 197 198 if(move_to > items_length - slider_size) { 199 var ost = items_length - (move_to + slider_size); 200 if(ost < slider_size) move_to = items_length - slider_size; 201 if (ost == -slider_size) move_to = 0; 202 } 203 if(move_to < 0) { 204 if(data_move > 0) move_to = 0; 205 else {move_to = items_length - slider_size;} 206 } 207 208 if(slider.attr('data-circles') === 'true' && slider.find('.indins-slider-nav-circles').length) { 209 var circles_index = Math.ceil(move_to/slider_size); 210 slider.find('.indins-slider-nav-active').removeClass('indins-slider-nav-active'); 211 slider.find('.indins-slider-nav-circles').find('li').eq(circles_index).addClass('indins-slider-nav-active'); 212 } 213 214 var move_way = (items_width * move_to) * -1; 215 if(items_length <= slider_size) move_way = move_way / 2; 216 217 var newAnimation = 'translate3d('+ move_way + 'px, 0,0)'; 218 move_block.css('-webkit-transform',newAnimation); 219 move_block.css('-moz-transform',newAnimation); 220 move_block.css('-o-transform',newAnimation); 221 move_block.css('transform',newAnimation); 222 slider.attr('data-move', move_to); 223 } 224 225 function getSize(slider,size){ 226 var is_size = 0; 227 switch (size) { 228 case 'lg': 229 if(slider.attr('data-size-lg') && $.isNumeric(slider.attr('data-size-lg'))){ 230 is_size = slider.attr('data-size-lg')*1; 231 break; 232 } 233 case 'md': 234 if(slider.attr('data-size-md') && $.isNumeric(slider.attr('data-size-md'))){ 235 is_size = slider.attr('data-size-md')*1; 236 break; 237 } 238 case 'sm': 239 if(slider.attr('data-size-sm') && $.isNumeric(slider.attr('data-size-sm'))){ 240 is_size = slider.attr('data-size-sm')*1; 241 break; 242 } 243 case 'xs': 244 if(slider.attr('data-size-xs') && $.isNumeric(slider.attr('data-size-xs'))){ 245 is_size = slider.attr('data-size-xs')*1; 246 break; 247 } 248 case 'ws': 249 if(slider.attr('data-size-ws') && $.isNumeric(slider.attr('data-size-ws'))){ 250 is_size = slider.attr('data-size-ws')*1; 251 break; 252 } 253 default: is_size = 1; 254 break; 255 } 256 return is_size; 257 } 258 /* ---------------------------------------------------------------------------------- */ 259 var calledArr = []; 260 function consultStartCallMessage(call_id){ 261 var slider = $('[data-on-page-id="'+call_id+'"]'), 262 sliderTime = slider.attr('data-interval')*1; 263 calledArr[call_id] = setInterval(function () { 264 indins_slider_move(slider, 'right'); 265 },sliderTime); 266 } 267 function consultStopCallMessage(call_id){ 268 clearInterval(calledArr[call_id]); 269 } 270 /* ---------------------------------------------------------------------------------- */ 271});
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.