PageSourceSearch

https://prin.ru/templates/new_prin/js/jquery-interra-a-slider-v2.js

js prin.ru collected 2026-10-02 04:04:15 UTC 19,233 bytes, 512 lines download raw bytes

1(function( $ ){
2
3/*
4$('.block_slider_out').idt_a_slider({
5'arrow_left':'.slider_arr_left a', //����� ����� ������
6'arrow_right':'.slider_arr_right a', //����� ������ ������
7'content_in':'.block_slider_out ul', //����� ����������� �����, ������ �������� ��������� �������������� ��������
8'content_out':'.block_slider_out', //����� �����, ������ ���������� ����, � ����� ����� �� �������� ����� � ����
9'in_page':1, //���������� ��������� ������� �����
10'el_width':1002, //������ ��������(� ������ border,padding,margin)
11'def_margin':0, //����������� ������
12'el_class':'.main_slider_element', //����� ��������
13'speed':500, //�������� ���������(�������������, �� ��������� 500)
14'arrow_block':'.block_brand_menu_out', //����� ����� �������, ���� ��� �� ������ content_out
15'css_option':'marginLeft', //�����, ������� ��������(�������������, �� ��������� left)
16'cycle':true, //�����������(�������������, �� ��������� false)
17'prop':'width', // ���� �������������� ������� �� ������, ���� ������������ �� ������
18'scroll': 1, // �� ������� �������������, �� ��������� ������� ������� ���������� �� ��������,
19'width_block':'.slider_producer_in' // ���� �� �������� ������������ ����� ������,
20"pages_block":'',
21"in_width": false, //������� ������ � width ������ margin
22"fill_block":false // ��������� ���� ���������� ����� ��� ������ ��� ������,
23"calc_height":true  // ��������� ������ content_out
24}); 
25
26	$('.nal_slider').idt_a_slider('refresh',{
27'arrow_left':'.slider_arr_left a', //����� ����� ������
28'arrow_right':'.slider_arr_right a', //����� ������ ������
29'content_in':'.block_slider_out ul', //����� ����������� �����, ������ �������� ��������� �������������� ��������
30'content_out':'.block_slider_out', //����� �����, ������ ���������� ����, � ����� ����� �� �������� ����� � ����
31'in_page':1, //���������� ��������� ������� �����
32'el_width':1002, //������ ��������(� ������ border,padding,margin)
33'el_class':'.main_slider_element', //����� ��������
34'speed':500, //�������� ���������(�������������, �� ��������� 500)
35});
36
37*/
38
39
40  var methods = {
41    init : function( options ) {
42
43	var left_array= {};
44	var right_array= {};
45	
46	var settings = $.extend( {
47      'speed'         : 500,
48	  'css_option'         : 'left',
49	  'start'         : '0',
50	  'cycle'         : false,
51	  'prop':'width',
52	  "def_margin":0,
53	  "align":"left",
54	  "in_width":false,
55	  "pages_block":"",
56    }, options);
57	
58	if (typeof(settings["arrow_block"])=="undefined")
59	{
60		settings["arrow_block"]=settings["content_out"];
61		settings["arr_out"]=0;
62	}
63	else
64	{
65		settings["arr_out"]=1;
66	}
67	
68	if (typeof(settings["width_block"])=="undefined")
69	{
70		settings["width_block"]=settings["content_out"];
71		settings["other_width_block"]=0;
72	}
73	else
74	{
75		settings["other_width_block"]=1;
76	}
77
78	
79	if ($(settings['el_class']+':first').is(':visible'))
80	{
81		settings['el_width']=$(settings['el_class']+':first').outerWidth();
82	}
83	
84	if (settings['scroll']==undefined)
85	{
86		settings['scroll_defined']=false;
87	}
88	else
89	{
90		settings['scroll_defined']=true;
91	}
92	
93	//console.log(settings['el_width']);
94settings['min_size']=settings['el_width']+settings['def_margin'];
95settings['el_size']=settings['min_size'];
96settings['container_width']=0;
97settings['in_page']=0;
98settings['anim']=false;
99settings['delta']=0;
100	function check_size(action)
101	{
102		
103		$(settings['content_out']).each(function()
104		{
105			
106			if ($(this).data('element-width')!=undefined)
107			{
108				settings['el_width']=$(this).data('element-width');
109			}
110			else
111			{
112				settings['el_width']=$(this).find(settings['el_class']+':first').outerWidth();
113				$(this).data('element-width',settings['el_width']);
114			}
115			
116			
117			var container=$(this);
118			if (settings["arr_out"]==0)
119			{
120				var arr_container=$(this);
121			}
122			else
123			{
124				var arr_container=$(this).closest(settings["arrow_block"]);
125			}
126			//console.log(settings["arr_out"]+' '+arr_container.attr('class'));
127			//
128			//console.log(settings['el_class']+' '+settings['el_width']+' '+$(settings['el_class']+':first').outerWidth());
129			settings['el_class']=settings['el_class']+':visible';
130			//console.log(settings['container_width']);
131			
132			if (settings["other_width_block"])
133			{
134				settings['container_width']=container.find(settings["width_block"]).width();
135			}
136			else
137			{
138				settings['container_width']=container.width();
139			}
140			//console.log(settings);
141			settings['in_page']=Math.floor(settings['container_width']/settings['min_size']);
142			if (parseInt(settings['in_page'])>=0)
143			{
144				settings['in_page']=1;
145				settings['el_width']=settings['container_width'];
146				settings['min_size']=settings['min_size']=settings['el_width']+settings['def_margin'];
147				
148			}
149			
150			if (settings['align']=="center")
151			{
152				if (settings['in_page']>container.find(settings['el_class']).length)
153				{
154					settings['in_page']=container.find(settings['el_class']).length;
155				}
156			}
157			
158			if (settings["fill_block"] && settings['in_page']>container.find(settings['el_class']).length)
159			{
160				settings['in_page']=container.find(settings['el_class']).length; //��������� ���� ���� ���� ��������� �� �������
161			}
162			
163			full_align=settings['container_width']-settings['in_page']*settings['min_size'];
164			
165			align=Math.ceil(full_align/settings['in_page']);
166			margin=Math.ceil((settings['def_margin']+align)/2);
167			settings['el_size']=settings['el_width']+margin*2;
168			//console.log(settings['el_width']+' '+full_align+' '+settings['el_size']);
169			
170			
171			//console.log($(this).data('inpage')+' '+$(this).data('elsize')+' | '+settings['in_page']+' '+settings['el_size']+' - '+container.find(settings['el_class']).length*settings['el_size']);
172			if (action=="load" || settings['in_page']!=$(this).data('inpage') || settings['el_size']!=$(this).data('elsize') || $(this).data('ellenght')!=container.find(settings['el_class']).length)
173			{
174			
175				if (container.find(settings['el_class']).length>0)
176				{
177					$(this).data('elsize',settings['el_size']);
178					$(this).data('inpage',settings['in_page']);
179					$(this).data('ellenght',container.find(settings['el_class']).length);
180				}
181			
182				//console.log(settings["in_width"]+' '+settings['el_size']+' '+margin+' '+settings['in_page']+' '+settings['container_width']+' '+settings['el_width']);
183				//alert(settings["other_width_block"]+' '+settings['container_width']+' '+container.width());
184				if (settings["in_width"])
185				{
186					//console.log(settings['el_size']);
187					css_align=parseInt(container.find(settings['el_class']).css('margin-left'))+parseInt(container.find(settings['el_class']).css('margin-right'));
188					container.find(settings['el_class']).css("width",settings['el_size']-css_align+'px');
189				}
190				else
191				{
192					//container.find(settings['el_class']).css("margin","0px "+margin+'px'+' 0px '+margin+'px');
193					container.find(settings['el_class']).css("margin","0px "+margin+'px'+' 0px auto');
194				}
195				settings['pages']=Math.ceil(container.find(settings['el_class']).length/settings['in_page']);
196				//console.log(container.find(settings['el_class']).length*settings['el_size']);
197				container.find(settings['content_in']).css('width',container.find(settings['el_class']).length*settings['el_size']+'px');
198				container.find(settings['content_in']).css('left','0px');
199				settings['delta']=settings['container_width']-(settings['in_page']*settings['el_size']);	
200				//console.log(arr_container);
201				//console.log(settings['container_width']+' '+container.find(settings['el_class']).length+' '+settings['min_size']);
202				if (settings['container_width']<container.find(settings['el_class']).length*settings['min_size'])
203				{	
204					if (!settings['cycle'])
205					{
206						arr_container.find(settings['arrow_left']).css('visibility','hidden');
207					}
208					else
209					{
210						arr_container.find(settings['arrow_left']).css('visibility','visible');
211					}
212						arr_container.find(settings['arrow_right']).css('visibility','visible');
213					
214					
215								
216				}
217				else
218				{
219					arr_container.find(settings['arrow_left']+','+settings['arrow_right']).css('visibility','hidden');
220					
221				}
222				
223				if (!settings['scroll_defined'] || settings["pages_block"]!="")
224				{
225					settings['scroll']=settings['in_page'];
226				}
227				
228				if (settings["pages_block"]!="")
229				{
230					$(this).find(settings["pages_block"]).find('li').remove();
231					pages_block="";
232					//alert(settings['pages']);
233					for (i=0;i<settings['pages'];i++)
234					{
235						pages_block+='<li><a data-key="'+i+'" href="#"></a></li>';
236					}
237					$(this).find(settings["pages_block"]).find('ul').append(pages_block);
238					$(this).find(settings["pages_block"]).find('a:first').addClass('selected');
239					//$(this).find(settings["pages_block"]).find('a').removeClass('selected');
240					//$(this).find(settings["pages_block"]).find('a:first').addClass('selected');
241				}
242				
243				if (settings["calc_height"])
244				{
245					max_height=0;
246					container.find(settings['el_class']).each(function()
247					{
248						if ($(this).outerHeight()>max_height)
249						{
250							max_height=$(this).outerHeight();
251						}
252					});
253					$(this).css('height',max_height);
254				}
255			}
256
257			
258		});	
259		
260	}
261	
262	check_size("load");
263	$(window).resize(function()
264	{
265		check_size("resize");
266	});
267	
268	$(window).on("slider-resize",function()
269	{
270		check_size("resize");
271	});
272	
273	$(window).on("ajax-resize",function()
274	{
275		check_size("load");
276	});
277	
278	
279	
280	
281	
282
283	$(settings['content_out']).each(function()
284	{
285	all_container=$(settings['content_out']);
286	
287	if (settings["arr_out"]==0)
288	{
289		var arr_container=$(this);
290	}
291	else
292	{
293		var arr_container=$(this).closest(settings["arrow_block"]);
294	}
295	
296	arr_container.find(settings['arrow_left']).click(function()
297	{
298		if (!settings['anim'])
299		{
300			container=$(this).closest(settings["arrow_block"]);
301			settings['anim']=true;
302			arr_container.find(settings['arrow_right']).css('visibility','visible');
303			
304			slide=(settings['scroll']*settings['el_size']);
305			if (!settings['cycle'])
306			{
307				left_full=0-parseInt(container.find(settings['content_in']).css('left'));
308				//alert(slide+' '+left_full);
309				if (slide>left_full)
310				{
311					slide=left_full;
312				}
313			}
314			else
315			{
316				container.find(settings['content_in']+' '+settings['el_class']).slice(-settings['in_page']).clone().prependTo(container.find(settings['content_in']));
317				container.find(settings['content_in']+' '+settings['el_class']).slice(-settings['in_page']).remove();
318				val=parseInt(container.find(settings['content_in']).css(settings['css_option']));
319				container.find(settings['content_in']).css(settings['css_option'],val-(settings['el_size']*settings['in_page']));
320			}
321			
322			container.find(settings['content_in']).animate({left:"+="+slide+"px"},function()
323			{	
324				if (parseInt(container.find(settings['content_in']).css('left'))==0 && !settings['cycle'])
325				{
326					arr_container.find(settings['arrow_left']).css('visibility','hidden');
327				}
328				
329				if (settings["pages_block"]!="")
330				{
331					key=Math.abs(Math.floor(parseInt(container.find(settings['content_in']).css('left'))/(settings['el_size']*settings['in_page'])));
332					//alert(key+' '+parseInt(container.find(settings['content_in']).css('left'))/(settings['el_size']*settings['in_page']));
333					all_container.find(settings["pages_block"]).find('a.selected').removeClass('selected');
334					all_container.find(settings["pages_block"]).find('a').eq(key).addClass('selected');
335				}
336				
337				settings['anim']=false;
338			});
339		}
340		return false;
341	});
342	
343	arr_container.find(settings['arrow_right']).click(function()
344	{
345		
346		if (!settings['anim'])
347		{
348			
349			container=$(this).closest(settings["arrow_block"]);
350			settings['anim']=true;
351			arr_container.find(settings['arrow_left']).css('visibility','visible');
352			
353			
354			slide=(settings['scroll']*settings['el_size']);
355			if (!settings['cycle'])
356			{
357				right_full=Math.abs(settings['container_width']-container.find(settings['el_class']).length*settings['el_size']-settings['delta']-parseInt(container.find(settings['content_in']).css('left')));
358				//alert(slide+' '+right_full);
359				if (slide>right_full)
360				{
361					slide=right_full;
362				}
363			}
364			else
365			{
366			
367			
368				
369				
370			}
371			
372			container.find(settings['content_in']).animate({left:"-="+slide+"px"},function()
373			{
374				//console.log(settings['delta']+' '+settings['container_width']+' '+(parseInt(container.find(settings['content_in']).css('left'))+settings['delta'])+' '+(settings['container_width']-container.find(settings['el_class']).length*settings['el_size']));
375				if (parseInt(container.find(settings['content_in']).css('left'))+settings['delta']<=settings['container_width']-container.find(settings['el_class']).length*settings['el_size'] && !settings['cycle'])
376				{
377					arr_container.find(settings['arrow_right']).css('visibility','hidden');
378				}
379				
380				if (settings['cycle'])
381				{
382					container.find(settings['content_in']+' '+settings['el_class']).slice(0,settings['in_page']).clone().appendTo(container.find(settings['content_in']));
383					container.find(settings['content_in']+' '+settings['el_class']).slice(0,settings['in_page']).remove();
384					val=parseInt(container.find(settings['content_in']).css(settings['css_option']));
385					container.find(settings['content_in']).css(settings['css_option'],val+(settings['el_size']*settings['in_page']));
386				}
387				
388				if (settings["pages_block"]!="")
389				{
390					key=Math.abs(Math.floor(parseInt(container.find(settings['content_in']).css('left'))/(settings['el_size']*settings['in_page'])));
391					//alert(key+' '+parseInt(container.find(settings['content_in']).css('left'))/(settings['el_size']*settings['in_page']));
392					all_container.find(settings["pages_block"]).find('a.selected').removeClass('selected');
393					all_container.find(settings["pages_block"]).find('a').eq(key).addClass('selected');
394				}
395				
396				
397				settings['anim']=false;
398			});
399		}
400		return false;
401	});
402	
403	if (settings["pages_block"]!="")
404	{
405		settings["pages_class"]=settings['content_out']+' '+settings["pages_block"]+' a';
406		
407		$('body').on('click',settings["pages_class"],function()
408		{
409			if (!settings['anim'])
410			{
411				settings['anim']=true;
412			container=$(this).closest(settings["arrow_block"]);	
413			pages_block=$(this).closest(settings["pages_block"]);	
414			var obj=this;
415			if ($(this).hasClass('selected')) return false;
416			
417			slide=0-parseInt($(this).data('key'))*settings['el_size']*settings['in_page'];
418			
419			right_full=settings['container_width']-container.find(settings['el_class']).length*settings['el_size']-settings['delta'];
420			//alert(slide+' '+right_full);
421			if (slide<right_full)
422			{
423				slide=right_full;
424			}
425			
426			
427			container.find(settings['content_in']).animate({left:slide+"px"},500,function()
428			{
429				pages_block.find('a.selected').removeClass('selected');
430				$(obj).addClass('selected');
431				
432				if (parseInt(container.find(settings['content_in']).css('left'))+settings['delta']<=settings['container_width']-container.find(settings['el_class']).length*settings['el_size'])
433				{
434					arr_container.find(settings['arrow_right']).css('visibility','hidden');
435				}
436				else
437				{
438					arr_container.find(settings['arrow_right']).css('visibility','visible');
439				}
440				
441				if (parseInt(container.find(settings['content_in']).css('left'))==0)
442				{
443					arr_container.find(settings['arrow_left']).css('visibility','hidden');
444				}
445				else
446				{
447					arr_container.find(settings['arrow_left']).css('visibility','visible');
448				}
449				
450					settings['anim']=false
451			});
452				
453				
454			}
455			return false;
456		});
457	}
458	
459	if (window.Hammer !== undefined)
460{
461	
462				
463		Hammer(this).on( "swipeleft", function(e)
464		{
465				if ($(e['target']).closest(settings["arrow_block"]).find(settings['arrow_right']).is(':visible') && $(e['target']).closest(settings["arrow_block"]).find(settings['arrow_right']).css("visibility") != "hidden")
466				{
467					$(e['target']).closest(settings["arrow_block"]).find(settings['arrow_right']).triggerHandler('click');
468				}
469		});
470		
471		Hammer(this).on( "swiperight", function(e)
472		{
473				if ($(e['target']).closest(settings["arrow_block"]).find(settings['arrow_left']).is(':visible') && $(e['target']).closest(settings["arrow_block"]).find(settings['arrow_left']).css("visibility") != "hidden")
474				{
475					$(e['target']).closest(settings["arrow_block"]).find(settings['arrow_left']).triggerHandler('click');
476				}
477		});
478		
479	
480}
481	
482	});
483	
484	
485
486	
487
488	
489
490	
491	
492    
493    },
494	refresh :function(options)
495	{
496	
497	}
498  };
499
500  $.fn.idt_a_slider = function( method ) {
501    
502    // ������ ������ ������
503    if ( methods[method] ) {
504      return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
505    } else if ( typeof method === 'object' || ! method ) {
506      return methods.init.apply( this, arguments );
507    } else {
508      $.error( '����� � ������ ' +  method + ' �� ���������� ��� jQuery.idt_a_slider' );
509    } 
510  };
511
512})( 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.