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-image-scroll.js
68 lines
| 1 | (function ($) { |
| 2 | |
| 3 | var PremiumImageScrollHandler = function ($scope, $) { |
| 4 | var scrollElement = $scope.find(".premium-image-scroll-container"), |
| 5 | scrollOverlay = scrollElement.find(".premium-image-scroll-overlay"), |
| 6 | scrollVertical = scrollElement.find(".premium-image-scroll-vertical"), |
| 7 | dataElement = scrollElement.data("settings"), |
| 8 | imageScroll = scrollElement.find("img"), |
| 9 | direction = dataElement["direction"], |
| 10 | reverse = dataElement["reverse"], |
| 11 | transformOffset = null; |
| 12 | |
| 13 | function startTransform() { |
| 14 | imageScroll.css("transform", (direction === "vertical" ? "translateY" : "translateX") + "( -" + |
| 15 | transformOffset + "px)"); |
| 16 | } |
| 17 | |
| 18 | function endTransform() { |
| 19 | imageScroll.css("transform", (direction === "vertical" ? "translateY" : "translateX") + "(0px)"); |
| 20 | } |
| 21 | |
| 22 | function setTransform() { |
| 23 | if (direction === "vertical") { |
| 24 | transformOffset = imageScroll.height() - scrollElement.height(); |
| 25 | } else { |
| 26 | transformOffset = imageScroll.width() - scrollElement.width(); |
| 27 | } |
| 28 | } |
| 29 | if (dataElement["trigger"] === "scroll") { |
| 30 | scrollElement.addClass("premium-container-scroll"); |
| 31 | if (direction === "vertical") { |
| 32 | scrollVertical.addClass("premium-image-scroll-ver"); |
| 33 | } else { |
| 34 | scrollElement.imagesLoaded(function () { |
| 35 | scrollOverlay.css({ |
| 36 | width: imageScroll.width(), |
| 37 | height: imageScroll.height() |
| 38 | }); |
| 39 | }); |
| 40 | } |
| 41 | } else { |
| 42 | if (reverse === "yes") { |
| 43 | scrollElement.imagesLoaded(function () { |
| 44 | scrollElement.addClass("premium-container-scroll-instant"); |
| 45 | setTransform(); |
| 46 | startTransform(); |
| 47 | }); |
| 48 | } |
| 49 | if (direction === "vertical") { |
| 50 | scrollVertical.removeClass("premium-image-scroll-ver"); |
| 51 | } |
| 52 | scrollElement.mouseenter(function () { |
| 53 | scrollElement.removeClass("premium-container-scroll-instant"); |
| 54 | setTransform(); |
| 55 | reverse === "yes" ? endTransform() : startTransform(); |
| 56 | }); |
| 57 | scrollElement.mouseleave(function () { |
| 58 | reverse === "yes" ? startTransform() : endTransform(); |
| 59 | }); |
| 60 | } |
| 61 | }; |
| 62 | |
| 63 | $(window).on('elementor/frontend/init', function () { |
| 64 | elementorFrontend.hooks.addAction('frontend/element_ready/premium-image-scroll.default', PremiumImageScrollHandler); |
| 65 | }); |
| 66 | })(jQuery); |
| 67 | |
| 68 |