isi-8.x-1.1-beta1/assets/src/js/drawer.js

assets/src/js/drawer.js
(function ($, Drupal) {

  'use strict';

  Drupal.behaviors.ISIDrawer = {
    attach: function (context) {

      if(context !== document) {
        return;
      }

      // isi tray behaviour.
      function initTray() {
        var $isiContainer = $('.jsIsiContainer', context);
        var $isiBtnMinimize = $('.jsIsiMinimize', context);
        var $isiSwapText = $('.js-swap-text', context);
        initTrayScroll();
        $isiBtnMinimize.once('isiBtnMinimizeClick').on(
          'click',
          function () {
            $isiContainer.toggleClass('opened isi-drawer-expanded isi-drawer-collapsed');
            $isiSwapText.toggleClass('hide');
          }
        );

      }

      function initScrollUpdate() {
        var $window = $(window);
        var $isiSection;
        if(window.location.href.indexOf('importantsafetyinformation') > 0) {
          $isiSection = $('.info-with-summary-section', context);
        }
        else{
          $isiSection = $('.isi-section', context);
        }
        var $isiTray = $('.isi-tray', context);
        var windowOffset = $window.scrollTop();
        var docViewBottom = windowOffset + $window.height() - $isiTray.height();
        var vertTopMargin = 80; // conceal tray when 80 px above isiTop anchor
        if($isiSection.length && $isiTray.length) {
          var elemTop = $isiSection.offset().top - vertTopMargin;
          if(elemTop <= docViewBottom) {
            $($isiTray).addClass('hide-tray');
          }
          else{
            $($isiTray).removeClass('hide-tray');
          }
        }
      }

      function initTrayScroll() {
        $('.isi-scrollable', context).once('initTrayScroll').scrollbar({
          autoScrollSize: false,
          scrolly: $('.external-scroll-y', context)
        });
      }

      // Minimize tray on scroll event
      $(window).once('initScrollUpdate').on(
        'scroll resize',
        function () {
          initScrollUpdate();
        }
      );

      initTray();
      initScrollUpdate();

    }
  };

})(jQuery, Drupal);

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

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