1"use strict"; 2 3(function ($, Drupal, drupalSettings) { 4 'use strict'; 5 6 Drupal.behaviors.otsukaStickyHeader = { 7 attach: function attach(context, settings) { 8 var $mainHeader = $('header.header', context); 9 10 if ($(once('scroll-hide', 'header.header', context)).length) { 11 var menuBehavior = drupalSettings.jynarque_hcc_2021.menu_behavior; 12 13 if (menuBehavior !== 'Sticky') { 14 return; 15 } 16 17 var prevScrollpos = window.pageYOffset; 18 var scrollOffset = 200; 19 var scrolling = false; 20 var $copyHeader = $mainHeader.clone(true).addClass('position-fixed').addClass('js--header-hidden').css('display', 'none'); 21 $copyHeader.find('[data-test]').each(function () { 22 $(this).removeAttr('data-test'); 23 }); 24 $('#mobile-menu', context).find('[data-test="main-menu"]').attr('data-test', 'mobile-main-menu'); 25 $(document.body).prepend($copyHeader); 26 $copyHeader.find('a').attr('tabindex', '-1'); 27 28 var autoHideHeader = function autoHideHeader() { 29 var currentScrollPos = window.pageYOffset; 30 31 if (currentScrollPos <= 0) { 32 $copyHeader.hide(); 33 } else if (currentScrollPos > scrollOffset) { 34 $copyHeader.addClass('js--header-hidden'); 35 $copyHeader.show(); 36 } 37 38 if (prevScrollpos > currentScrollPos) { 39 $copyHeader.removeClass('js--header-hidden'); 40 } else { 41 if (currentScrollPos > scrollOffset) { 42 $copyHeader.addClass('js--header-hidden'); 43 } 44 } 45 46 prevScrollpos = currentScrollPos; 47 scrolling = false; 48 }; 49 50 $(window).on('scroll', function () { 51 if (!scrolling) { 52 scrolling = true; 53 54 if (!window.requestAnimationFrame) { 55 setTimeout(autoHideHeader, 250); 56 } else { 57 requestAnimationFrame(autoHideHeader); 58 } 59 } 60 }); 61 } 62 } 63 }; 64})(jQuery, Drupal, drupalSettings);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.