PageSourceSearch

https://lazerineklinika.lt/app/themes/era_kstudija/js/navigation.js?ver=20151215

js lazerineklinika.lt collected 2026-10-07 13:38:15 UTC 3,785 bytes, 114 lines download raw bytes

1/**
2 * File navigation.js.
3 *
4 * Handles toggling the navigation menu for small screens and enables TAB key
5 * navigation support for dropdown menus.
6 */
7(function() {
8    var container, button, menu, links, i, len;
9
10    container = document.getElementById('site-navigation');
11    if (!container) {
12        return;
13    }
14
15    button = container.getElementsByTagName('button')[0];
16    if ('undefined' === typeof button) {
17        return;
18    }
19
20    menu = container.getElementsByTagName('ul')[0];
21
22    // Hide menu toggle button if menu is empty and return early.
23    if ('undefined' === typeof menu) {
24        button.style.display = 'none';
25        return;
26    }
27
28    menu.setAttribute('aria-expanded', 'false');
29    if (-1 === menu.className.indexOf('nav-menu')) {
30        menu.className += ' nav-menu';
31    }
32
33    button.onclick = function() {
34        if (-1 !== container.className.indexOf('toggled')) {
35            container.className = container.className.replace(' toggled', '');
36            button.setAttribute('aria-expanded', 'false');
37            menu.setAttribute('aria-expanded', 'false');
38        } else {
39            container.className += ' toggled';
40            button.setAttribute('aria-expanded', 'true');
41            menu.setAttribute('aria-expanded', 'true');
42        }
43    };
44
45    // Get all the link elements within the menu.
46    links = menu.getElementsByTagName('a');
47
48    // Each time a menu link is focused or blurred, toggle focus.
49    for (i = 0, len = links.length; i < len; i++) {
50        links[i].addEventListener('focus', toggleFocus, true);
51        links[i].addEventListener('blur', toggleFocus, true);
52    }
53
54    /**
55     * Sets or removes .focus class on an element.
56     */
57    function toggleFocus() {
58        var self = this;
59
60        // Move up through the ancestors of the current link until we hit .nav-menu.
61        while (-1 === self.className.indexOf('nav-menu')) {
62
63            // On li elements toggle the class .focus.
64            if ('li' === self.tagName.toLowerCase()) {
65                if (-1 !== self.className.indexOf('focus')) {
66                    self.className = self.className.replace(' focus', '');
67                } else {
68                    self.className += ' focus';
69                }
70            }
71
72            self = self.parentElement;
73        }
74    }
75
76    /**
77     * Toggles `focus` class to allow submenu access on tablets.
78     */
79    (function(container) {
80        var touchStartFn, i,
81            parentLink = container.querySelectorAll('.menu-item-has-children > a, .page_item_has_children > a');
82
83        if ('ontouchstart' in window) {
84            touchStartFn = function(e) {
85                var menuItem = this.parentNode,
86                    i;
87
88                if (!menuItem.classList.contains('focus')) {
89                    e.preventDefault();
90                    for (i = 0; i < menuItem.parentNode.children.length; ++i) {
91                        if (menuItem === menuItem.parentNode.children[i]) {
92                            continue;
93                        }
94                        menuItem.parentNode.children[i].classList.remove('focus');
95                    }
96                    menuItem.classList.add('focus');
97                } else {
98                    menuItem.classList.remove('focus');
99                }
100            };
101
102            for (i = 0; i < parentLink.length; ++i) {
103                parentLink[i].addEventListener('touchstart', touchStartFn, false);
104            }
105        }
106    }(container));
107})();
108
109
110jQuery(document).ready(function() {
111    jQuery('#nav-icon1,#nav-icon2,#nav-icon3,#nav-icon4').click(function() {
112        jQuery(this).toggleClass('open');
113    });
114});

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.