1(function($){ 2 $.fn.myCarousel = function(options) { 3 var opt = $.extend({ 4 width: 840, 5 height: 560, 6 interval: 6000 7 }, options); 8 var car = $(this); 9 var totalItems = car.find('.carousel-inner .carousel-item').length; 10 var currentItem = car.find('.carousel-inner div.active').index() + 1; 11 var calcHeight = function() { 12 var w = car.width(); 13 var h = parseInt(w * opt.height / opt.width); 14 car.find('.archivo').css("height", h); 15 car.find('.index-control').css("top", parseInt(h * 0.4)); 16 } 17 //Carrusel con thumbnails 18 var tn_w = 120; 19 var left = 0; 20 var ol_w = tn_w * totalItems; 21 var frame_w = car.find('.tn-inner').outerWidth(); 22 var view_tn = parseInt(frame_w / tn_w); 23 var max_l = 0 - ol_w + (view_tn * tn_w); 24 var ini_tn = 0; 25 var showActiveTn = function() { 26 var active_tn = currentItem - 1; 27 if (active_tn < ini_tn) { 28 ini_tn = active_tn; 29 left = 0 - (active_tn * tn_w); 30 } 31 if (active_tn > (ini_tn + view_tn - 1)) { 32 ini_tn = active_tn - view_tn + 1; 33 left = 0 - (ini_tn * tn_w); 34 } 35 car.find('.tn-inner .carousel-indicators').css('left', left); 36 } 37 // 38 var init = function() { 39 car.find('.num').html(''+currentItem+'/'+totalItems+''); 40 car.on('click','.pause', function(e) { 41 e.preventDefault(); 42 car.carousel('pause'); 43 $(this).addClass('hidden'); 44 car.find('.play').removeClass('hidden'); 45 }); 46 car.on('click','.play', function(e) { 47 e.preventDefault(); 48 car.carousel('next'); 49 car.carousel('cycle'); 50 $(this).addClass('hidden'); 51 car.find('.pause').removeClass('hidden'); 52 }); 53 car.on('click','.sig-tn', function(e) { 54 e.preventDefault(); 55 if (left > max_l) { 56 left = left - tn_w; 57 car.find('.carousel-indicators').css('left', left); 58 ini_tn++; 59 } 60 }); 61 car.on('click','.ant-tn', function(e) { 62 e.preventDefault(); 63 if (left < 0) { 64 left = left + tn_w; 65 car.find('.carousel-indicators').css('left', left); 66 ini_tn--; 67 } 68 }); 69 car.on('slid.bs.carousel', function () { 70 currentItem = $(this).find('.carousel-inner div.active').index() + 1; 71 $(this).find('.num').html(''+currentItem+'/'+totalItems+''); 72 showActiveTn(); 73 car.find('video, audio').each(function() { 74 $(this).get(0).pause(); 75 }); 76 }); 77 $(window).resize(function() { 78 calcHeight(); 79 var tn_inner = car.find('.tn-inner'); 80 if (tn_inner.length > 0) { 81 frame_w = tn_inner.outerWidth(); 82 view_tn = parseInt(frame_w / tn_w); 83 max_l = 0 - ol_w + (view_tn * tn_w); 84 if (left < max_l) { 85 left = max_l; 86 ini_tn = totalItems - view_tn; 87 } 88 showActiveTn(); 89 } 90 }); 91 calcHeight(); 92 $(this).carousel({ 93 interval: opt.interval 94 }); 95 }; 96 return this.each(init); 97 }; 98})(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.