PageSourceSearch

https://xposedmagazinenews24.com/wp-content/themes/superb-pixels/js/navigation.js?ver=20170823

js xposedmagazinenews24.com collected 2026-10-10 00:37:49 UTC 3,129 bytes, 110 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"use strict";
8(function () {
9  var container, button, menu, links, i, len;
10
11  container = document.getElementById("site-navigation");
12  if (!container) {
13    return;
14  }
15
16  button = container.getElementsByTagName("button")[0];
17  if ("undefined" === typeof button) {
18    return;
19  }
20
21  menu = container.getElementsByTagName("ul")[0];
22
23  // Hide menu toggle button if menu is empty and return early.
24  if ("undefined" === typeof menu) {
25    button.style.display = "none";
26    return;
27  }
28
29  menu.setAttribute("aria-expanded", "false");
30  if (-1 === menu.className.indexOf("nav-menu")) {
31    menu.className += " nav-menu";
32  }
33
34  button.onclick = function () {
35    if (-1 !== container.className.indexOf("toggled")) {
36      container.className = container.className.replace(" toggled", "");
37      button.setAttribute("aria-expanded", "false");
38      menu.setAttribute("aria-expanded", "false");
39    } else {
40      container.className += " toggled";
41      button.setAttribute("aria-expanded", "true");
42      menu.setAttribute("aria-expanded", "true");
43    }
44  };
45
46  // Get all the link elements within the menu.
47  links = menu.getElementsByTagName("a");
48
49  // Each time a menu link is focused or blurred, toggle focus.
50  for (i = 0, len = links.length; i < len; i++) {
51    links[i].addEventListener("focus", toggleFocus, true);
52    links[i].addEventListener("blur", toggleFocus, true);
53  }
54
55  /**
56   * Sets or removes .focus class on an element.
57   */
58  function toggleFocus() {
59    var self = this;
60
61    // Move up through the ancestors of the current link until we hit .nav-menu.
62    while (-1 === self.className.indexOf("nav-menu")) {
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,
81      i,
82      parentLink = container.querySelectorAll(
83        ".menu-item-has-children > a, .page_item_has_children > a"
84      );
85
86    if ("ontouchstart" in window) {
87      touchStartFn = function (e) {
88        var menuItem = this.parentNode,
89          i;
90
91        if (!menuItem.classList.contains("focus")) {
92          e.preventDefault();
93          for (i = 0; i < menuItem.parentNode.children.length; ++i) {
94            if (menuItem === menuItem.parentNode.children[i]) {
95              continue;
96            }
97            menuItem.parentNode.children[i].classList.remove("focus");
98          }
99          menuItem.classList.add("focus");
100        } else {
101          menuItem.classList.remove("focus");
102        }
103      };
104
105      for (i = 0; i < parentLink.length; ++i) {
106        parentLink[i].addEventListener("touchstart", touchStartFn, false);
107      }
108    }
109  })(container);
110})();

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.