PageSourceSearch

https://www.jynarque.com/sites/g/files/qhldwo12166/themes/site/the…/assets/build/js/menu/menu-sticky.js

js jynarque.com collected 2026-10-08 00:24:56 UTC 2,048 bytes, 64 lines download raw bytes

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.