drowl_media-8.x-2.0-rc0/modules/drowl_media_types/js/drowl_media_types.slideshow.js

modules/drowl_media_types/js/drowl_media_types.slideshow.js
/**
 * @file
 * Various Media Library Scripts
 *
 */
(function ($, Drupal) {
  Drupal.behaviors.drowl_media_types_slideshow = {
    attach: function (context, settings) {
      // Add animation class to the image or video video field wrappers in media-slides
      let $mediaSlidesWithAnimation = $(
        ".media-slide__media[data-media-animation]",
        context
      );
      if ($mediaSlidesWithAnimation.length) {
        $mediaSlidesWithAnimation.each(function () {
          let $mediaSlideMediaWrapper = $(this);
          // Add the animation class to the media field wrapper (image or video)
          if ($mediaSlideMediaWrapper.parents(".slick__slider:first").length) {
            // Media "Slides" also works outside slideshows.
            // If the media-slide is located inside a slick-carousel/slideshow
            // we will add/remove the animation classes dynamically
            // to increase the performance of sites with a huge amount
            // of animated media-slides.
            $mediaSlideMediaWrapper
              .parents(".slick__slider:first")
              .addClass("has-animated-media-slides");
          } else {
            // Single Slides outside a Slick slideshow > fire animtaion directly.
            $mediaSlideMediaWrapper
              .find(".animation-wrapper:first > :first-child", context)
              .addClass("animation-" + $(this).attr("data-media-animation"));
          }
        });
        $(".slick__slider.has-animated-media-slides", context).on(
          "beforeChange",
          function (event, slick, currentSlide, nextSlide) {
            let $nextSlide = $(slick.$slides.get(nextSlide));
            // Remove class from current slide
            // add transition time as delay to prevent fouc
            setTimeout(function () {
              $(slick.$slides.get(currentSlide))
                .find(".animation-wrapper:first > :first-child", context)
                .removeClass("animation-ken-burns");
            }, slick.slickGetOption("speed"));
            // Add Animation class to next slide
            $nextSlide
              .find(".animation-wrapper:first > :first-child", context)
              .addClass(
                "animation-" +
                  $nextSlide
                    .find(".media-slide__media--animated:first")
                    .attr("data-media-animation")
              );
          }
        );
      }
    },
  };
})(jQuery, Drupal);

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc