degov-8.x-2.0/modules/degov_paragraph_slideshow/js/slideshow.js

modules/degov_paragraph_slideshow/js/slideshow.js
/**
 * @file slideshow.js
 *
 * Defines the behavior of the Slideshow paragraph.
 */
(function ($, Drupal, drupalSettings) {

  'use strict';

  /**
   * Initializes the slideshow paragraph with Slick.
   */
  Drupal.behaviors.slideshow = {
    attach: function (context, settings) {
      var $slideshow = $('.slideshow.default', context);
      if ($slideshow.length >= 1) {
          var $slider = $('.slideshow__slides', $slideshow);
          $slider.once().slick({
              dots: true,
              autoplay: false,
              speed: 500
          });

          $('.slick__pause', $slideshow).on('click', function () {
              $slider.slick('slickPause');
              $(this).hide().siblings('.slick__play').show().focus();
          }).hide();
          $('.slick__play', $slideshow).on('click', function () {
              $slider.slick('slickPlay');
              $(this).hide().siblings('.slick__pause').show().focus();
          }).show();
      }

      // Slick slider for prev/next thumbnails images
      var $slideshow_prev_next = $('.slideshow-with-prev-next');
      var $slides_prev_next = $('.slides_prev_next', $slideshow_prev_next);
      $slides_prev_next.once().slick({
        dots: false,
        slidesToShow: 1,
        autoplay: false
      });
      setTimeout(function () {
        $slides_prev_next.prepend('<div class="prev-slick-img slick-thumb-nav"><img src="/prev.jpg" class="img-responsive"></div>').append('<div class="next-slick-img slick-thumb-nav"><img src="/next.jpg" class="img-responsive"></div>');
        get_prev_slick_img();
        get_next_slick_img();
      }, 500);

      $slides_prev_next.on('click', '.slick-prev', function () {
        get_prev_slick_img();
      });
      $slides_prev_next.on('click', '.slick-next', function () {
        get_next_slick_img();
      });
      $slides_prev_next.on('swipe', function (event, slick, direction) {
        if (direction == 'left') {
          get_prev_slick_img();
        }
        else {
          get_next_slick_img();
        }
      });

      function get_prev_slick_img() {
        var $slick_current = $('.slick-current');
        // For prev img
        var prev_slick_img = $slick_current.prev('.slick-slide').find('.slide__media img').attr('src');
        $('.prev-slick-img img').attr('src', prev_slick_img);
        $('.prev-slick-img').css('background-image', 'url(' + prev_slick_img + ')');
        // For next img
        var prev_next_slick_img = $slick_current.next('.slick-slide').find('.slide__media img').attr('src');
        $('.next-slick-img img').attr('src', prev_next_slick_img);
        $('.next-slick-img').css('background-image', 'url(' + prev_next_slick_img + ')');
      }

      function get_next_slick_img() {
        var $slick_current = $('.slick-current');
        // For next img
        var next_slick_img = $slick_current.next('.slick-slide').find('.slide__media img').attr('src');
        $('.next-slick-img img').attr('src', next_slick_img);
        $('.next-slick-img').css('background-image', 'url(' + next_slick_img + ')');
        // For prev img
        var next_prev_slick_img = $slick_current.prev('.slick-slide').find('.slide__media img').attr('src');
        $('.prev-slick-img img').attr('src', next_prev_slick_img);
        $('.prev-slick-img').css('background-image', 'url(' + next_prev_slick_img + ')');
      }

      // End
    }
  }

})(jQuery, Drupal, drupalSettings);

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

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