1( function( $ ) { 2 /** 3 * @param $scope The Widget wrapper element as a jQuery element 4 * @param $ The jQuery alias 5 */ 6 var WidgetCTPostCarouselHandler = function( $scope, $ ) { 7 setTimeout(function(){ 8 var breakpoints = elementorFrontend.config.breakpoints; 9 var carousel = $scope.find(".ct-slick-carousel"); 10 var data = carousel.data(); 11 var slickOptions = { 12 slidesToShow: data.colxl, 13 slidesToScroll: data.slidestoscroll, 14 autoplay: true === data.autoplay, 15 autoplaySpeed: data.autoplayspeed, 16 infinite: true === data.infinite, 17 pauseOnHover: true === data.pauseonhover, 18 speed: data.speed, 19 arrows: true === data.arrows, 20 dots: true === data.dots, 21 rtl: true === data.dir, 22 responsive: [ 23 { 24 breakpoint: 1200, 25 settings: { 26 slidesToShow: data.collg 27 } 28 }, 29 { 30 breakpoint: 992, 31 settings: { 32 slidesToShow: data.colmd 33 } 34 }, 35 { 36 breakpoint: 767, 37 settings: { 38 slidesToShow: data.colsm 39 } 40 }, 41 { 42 breakpoint: 575, 43 settings: { 44 slidesToShow: data.colxs, 45 slidesToScroll: data.colxs, 46 } 47 }, 48 ] 49 }; 50 var nav_for = $scope.find(".ct-slick-nav"); 51 if(nav_for.length > 0){ 52 slickOptions.asNavFor = nav_for; 53 } 54 if(typeof carousel.attr('data-centerMode') !== 'undefined') { 55 slickOptions.centerMode = carousel.attr('data-centerMode') == 'true' ? true : false; 56 } 57 if(typeof carousel.attr('data-fade') !== 'undefined') { 58 slickOptions.fade = carousel.attr('data-fade') == 'true' ? true : false; 59 } 60 carousel.slick(slickOptions); 61 62 $('.ct-nav-carousel').parents('.elementor-section').addClass('hide-nav'); 63 $('.ct-nav-carousel .nav-prev').on('click', function () { 64 $(this).parents('.elementor-element').find('.slick-prev').trigger('click'); 65 }); 66 $('.ct-nav-carousel .nav-next').on('click', function () { 67 $(this).parents('.elementor-element').find('.slick-next').trigger('click'); 68 }); 69 70 $('.arrow-focus1 .ct-nav-carousel').parents('.site-content').find('.carousel-focus1').addClass('hide-nav'); 71 $('.arrow-focus1 .ct-nav-carousel .nav-prev').on('click', function () { 72 $(this).parents('.site-content').find('.carousel-focus1 .slick-prev').trigger('click'); 73 }); 74 $('.arrow-focus1 .ct-nav-carousel .nav-next').on('click', function () { 75 $(this).parents('.site-content').find('.carousel-focus1 .slick-next').trigger('click'); 76 }); 77 78 $('.ct-nav-slick').parent().addClass('hide-nav'); 79 $('.ct-nav-slick .nav-prev').on('click', function () { 80 $(this).parents('.ct-slick-slider').find('.slick-prev').trigger('click'); 81 }); 82 $('.ct-nav-slick .nav-next').on('click', function () { 83 $(this).parents('.ct-slick-slider').find('.slick-next').trigger('click'); 84 }); 85 86 87 }, 500); 88 }; 89 90 $('.ct-slick-slider').each(function () { 91 var slider_main = $(this).find('.ct-slick-carousel'); 92 var slider_nav = $(this).find('.ct-slick-nav'); 93 $(slider_nav).slick({ 94 slidesToShow: parseInt(slider_nav.attr('data-nav')), 95 slidesToScroll: 1, 96 asNavFor: slider_main, 97 dots: false,
98 arrows: false, 99 centerMode: true, 100 infinite: true, 101 focusOnSelect: true, 102 autoplay: false, 103 autoplaySpeed: 8000, 104 speed: 800, 105 rtl: true === slider_nav.data('dir'), 106 responsive: [ 107 { 108 breakpoint: 768, 109 settings: { 110 slidesToShow: 3 111 } 112 } 113 ] 114 }); 115 }); 116 117 // Make sure you run this code under Elementor. 118 $( window ).on( 'elementor/frontend/init', function() { 119 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_blog_carousel.default', WidgetCTPostCarouselHandler ); 120 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_service_carousel.default', WidgetCTPostCarouselHandler ); 121 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_portfolio_carousel.default', WidgetCTPostCarouselHandler ); 122 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_gallery_carousel.default', WidgetCTPostCarouselHandler ); 123 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_testimonial_carousel.default', WidgetCTPostCarouselHandler ); 124 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_team_carousel.default', WidgetCTPostCarouselHandler ); 125 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_fancybox_carousel.default', WidgetCTPostCarouselHandler ); 126 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_clients_list.default', WidgetCTPostCarouselHandler ); 127 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_case_study_carousel.default', WidgetCTPostCarouselHandler ); 128 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_fancy_box_carousel.default', WidgetCTPostCarouselHandler ); 129 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_offer_carousel.default', WidgetCTPostCarouselHandler ); 130 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_courses_carousel.default', WidgetCTPostCarouselHandler ); 131 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_slider.default', WidgetCTPostCarouselHandler ); 132 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_portfolio_external.default', WidgetCTPostCarouselHandler ); 133 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_service_external.default', WidgetCTPostCarouselHandler ); 134 elementorFrontend.hooks.addAction( 'frontend/element_ready/ct_history_carousel.default', WidgetCTPostCarouselHandler ); 135 } ); 136} )( 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.