TweenMax.js
1 year ago
anime.js
1 year ago
flipster.js
1 year ago
headroom.js
1 year ago
iscroll.js
1 year ago
isotope.js
1 year ago
jquery-countdown.js
1 year ago
jquery-mousewheel.js
1 year ago
jquery-slimscroll.js
1 year ago
lottie.js
1 year ago
luxon.js
1 year ago
markerclusterer.js
1 year ago
modal.js
1 year ago
motionpath.js
1 year ago
pa-gsap.js
1 year ago
pa-scrolldir.js
1 year ago
premium-addons.js
1 year ago
premium-banner.js
1 year ago
premium-blog.js
1 year ago
premium-button.js
1 year ago
premium-carousel-widget.js
1 year ago
premium-contact-form.js
1 year ago
premium-countdown-timer.js
1 year ago
premium-counter.js
1 year ago
premium-dis-conditions.js
1 year ago
premium-dual-header.js
1 year ago
premium-eq-height.js
1 year ago
premium-fancy-text.js
1 year ago
premium-floating-effects.js
1 year ago
premium-global-tooltips.js
1 year ago
premium-icon-list.js
1 year ago
premium-image-button.js
1 year ago
premium-image-scroll.js
1 year ago
premium-img-gallery.js
1 year ago
premium-maps.js
1 year ago
premium-media-wheel.js
1 year ago
premium-mini-cart.js
1 year ago
premium-mobile-menu.js
1 year ago
premium-modal-box.js
1 year ago
premium-nav-menu.js
1 year ago
premium-notifications.js
1 year ago
premium-person.js
1 year ago
premium-pinterest-feed.js
1 year ago
premium-post-ticker.js
1 year ago
premium-progressbar.js
1 year ago
premium-search-form.js
1 year ago
premium-shape-divider.js
1 year ago
premium-svg-drawer.js
1 year ago
premium-tcloud.js
1 year ago
premium-testimonials.js
1 year ago
premium-textual-showcase.js
1 year ago
premium-tiktok-feed.js
1 year ago
premium-title.js
1 year ago
premium-video-box.js
1 year ago
premium-vscroll.js
1 year ago
premium-weather.js
1 year ago
premium-woo-categories.js
1 year ago
premium-woo-cta.js
1 year ago
premium-woo-products.js
1 year ago
premium-world-clock.js
1 year ago
premium-wrapper-link.js
1 year ago
prettyPhoto.js
1 year ago
scrollTrigger.js
1 year ago
slick.js
1 year ago
tooltipster.js
1 year ago
typed.js
1 year ago
universal-tilt.js
1 year ago
vticker.js
1 year ago
premium-post-ticker.js
181 lines
| 1 | (function ($) { |
| 2 | |
| 3 | var PremiumPostTickerHandler = function ($scope, $) { |
| 4 | |
| 5 | var timer = null, |
| 6 | $postsWrapper = $scope.find('.premium-post-ticker__posts-wrapper'), |
| 7 | settings = $scope.find('.premium-post-ticker__outer-wrapper').data('ticker-settings'); |
| 8 | |
| 9 | if (!settings) |
| 10 | return; |
| 11 | |
| 12 | if ('' !== settings.animation && 'layout-4' !== settings.layout) { |
| 13 | $postsWrapper.on("init", function (event) { |
| 14 | resetAnimations("init"); |
| 15 | }); |
| 16 | } |
| 17 | |
| 18 | if (settings.typing) { |
| 19 | $postsWrapper.on('init', function (event, slick) { |
| 20 | var $currentTyping = $postsWrapper.find('[data-slick-index="' + slick.currentSlide + '"] .premium-post-ticker__post-title a'); |
| 21 | |
| 22 | typeTitle($currentTyping); |
| 23 | }); |
| 24 | |
| 25 | $postsWrapper.on('beforeChange', function (event, slick, currentSlide, nextSlide) { |
| 26 | |
| 27 | var $typedItem = $postsWrapper.find('[data-slick-index="' + currentSlide + '"] .premium-post-ticker__post-title'), |
| 28 | $currentTyping = $postsWrapper.find('[data-slick-index="' + currentSlide + '"] .premium-post-ticker__post-title a'), |
| 29 | $nextTyping = $postsWrapper.find('[data-slick-index="' + nextSlide + '"] .premium-post-ticker__post-title a'); |
| 30 | |
| 31 | clearInterval(timer); |
| 32 | $typedItem.removeClass('premium-text-typing'); |
| 33 | $currentTyping.text(''); |
| 34 | |
| 35 | typeTitle($nextTyping); |
| 36 | }); |
| 37 | } |
| 38 | |
| 39 | if ($postsWrapper.find('.premium-post-ticker__post-wrapper').length <= 6) { |
| 40 | |
| 41 | $postsWrapper.find('.premium-post-ticker__post-wrapper').map(function (index, post) { |
| 42 | $postsWrapper.append($(post).clone()); |
| 43 | }) |
| 44 | |
| 45 | } |
| 46 | |
| 47 | $postsWrapper.slick(getSlickSettings()); |
| 48 | |
| 49 | if ('' !== settings.animation && 'layout-4' !== settings.layout) { |
| 50 | |
| 51 | $postsWrapper.on("beforeChange", function () { |
| 52 | resetAnimations(); |
| 53 | }); |
| 54 | |
| 55 | $postsWrapper.on("afterChange", function () { |
| 56 | triggerAnimation(); |
| 57 | }); |
| 58 | } |
| 59 | |
| 60 | if (settings.arrows) { |
| 61 | |
| 62 | $scope.find('.premium-post-ticker__arrows a').on('click.paTickerNav', function () { |
| 63 | |
| 64 | if ($(this).hasClass('prev-arrow')) { |
| 65 | |
| 66 | $postsWrapper.slick('slickPrev'); |
| 67 | |
| 68 | } else if ($(this).hasClass('next-arrow')) { |
| 69 | |
| 70 | $postsWrapper.slick('slickNext'); |
| 71 | |
| 72 | } |
| 73 | }); |
| 74 | } |
| 75 | |
| 76 | $scope.find('.premium-post-ticker__outer-wrapper').removeClass('premium-post-ticker__hidden'); |
| 77 | |
| 78 | function getSlickSettings() { |
| 79 | |
| 80 | $postsWrapper.off('mouseenter.paTickerPause'); |
| 81 | |
| 82 | var closestTab = $scope.closest('.premium-tabs-content-section'), |
| 83 | autoPlay = settings.autoPlay; |
| 84 | |
| 85 | //If there is a parent tab and it's not active, then autoplay should not be true. |
| 86 | if (closestTab.length > 0) { |
| 87 | if (!closestTab.hasClass('content-current')) |
| 88 | autoPlay = false; |
| 89 | } |
| 90 | |
| 91 | var slickSetting = { |
| 92 | infinite: true, |
| 93 | slidesToShow: 1, |
| 94 | slidesToScroll: 1, |
| 95 | arrows: false, |
| 96 | autoplay: autoPlay, |
| 97 | rows: 0, |
| 98 | speed: settings.speed, |
| 99 | fade: settings.fade, |
| 100 | draggable: true, |
| 101 | pauseOnHover: settings.pauseOnHover, |
| 102 | vertical: settings.vertical |
| 103 | }; |
| 104 | |
| 105 | if (settings.autoPlay) { |
| 106 | slickSetting.autoplaySpeed = settings.autoplaySpeed; |
| 107 | } |
| 108 | |
| 109 | if (settings.infinite) { |
| 110 | slickSetting.autoplaySpeed = 0; |
| 111 | slickSetting.cssEase = 'linear'; |
| 112 | |
| 113 | slickSetting.useCSS = false; |
| 114 | |
| 115 | if ('layout-4' !== settings.layout && !settings.vertical) { |
| 116 | slickSetting.variableWidth = true; // this only is required if the slider is horizontal |
| 117 | } |
| 118 | } |
| 119 | |
| 120 | if ('layout-4' === settings.layout) { |
| 121 | slickSetting.vertical = true; |
| 122 | slickSetting.slidesToShow = settings.slidesToShow || 1; |
| 123 | } |
| 124 | |
| 125 | if ($scope.hasClass('premium-reversed-yes') && 'layout-4' !== settings.layout && !settings.vertical && !settings.typing && !settings.fade) { |
| 126 | |
| 127 | slickSetting.rtl = true; |
| 128 | } |
| 129 | |
| 130 | return slickSetting; |
| 131 | } |
| 132 | |
| 133 | function resetAnimations() { |
| 134 | |
| 135 | var $slides = $postsWrapper.find(".slick-slide").not(".slick-current"); |
| 136 | |
| 137 | $slides.each(function (index, elem) { |
| 138 | $(elem).removeClass("animated " + settings.animation).addClass("elementor-invisible"); |
| 139 | }); |
| 140 | }; |
| 141 | |
| 142 | function triggerAnimation() { |
| 143 | |
| 144 | $postsWrapper.find(".slick-active.elementor-invisible").each(function (index, elem) { |
| 145 | |
| 146 | $(elem).removeClass("elementor-invisible").addClass(settings.animation + ' animated'); |
| 147 | |
| 148 | }); |
| 149 | } |
| 150 | |
| 151 | function typeTitle($tickerItem) { |
| 152 | |
| 153 | if (!$tickerItem.length) { |
| 154 | return; |
| 155 | } |
| 156 | |
| 157 | var typingCounter = 0, |
| 158 | $typedItem = $tickerItem.closest('.premium-post-ticker__post-title'), |
| 159 | typingText = $tickerItem.data('typing'), |
| 160 | typingTextLength = typingText.length; |
| 161 | |
| 162 | $typedItem.addClass('premium-text-typing'); |
| 163 | $tickerItem.text(typingText.substr(0, typingCounter++)); |
| 164 | |
| 165 | timer = setInterval(function () { |
| 166 | if (typingCounter <= typingTextLength) { |
| 167 | $tickerItem.text(typingText.substr(0, typingCounter++)); |
| 168 | } else { |
| 169 | clearInterval(timer); |
| 170 | $typedItem.removeClass('premium-text-typing'); // have the '_' after. |
| 171 | } |
| 172 | }, 40); |
| 173 | } |
| 174 | }; |
| 175 | |
| 176 | $(window).on('elementor/frontend/init', function () { |
| 177 | elementorFrontend.hooks.addAction('frontend/element_ready/premium-post-ticker.default', PremiumPostTickerHandler); |
| 178 | }); |
| 179 | |
| 180 | })(jQuery); |
| 181 |