PageSourceSearch

https://www.bookscumbria.com/wp-content/themes/website-theme/js/responsive-menu.js

js bookscumbria.com collected 2026-10-02 10:23:17 UTC 4,018 bytes, 168 lines download raw bytes

1// var ww = document.body.scrollWidth;
2var ww = window.innerWidth;
3
4var mobileWidth = 900;
5
6var adjustMenu = function() {
7
8	// If mobile resolution, hide menu
9
10	ww = window.innerWidth;
11	if (ww <= mobileWidth ) {
12		
13		if( jQuery( '#mobile-menu' ).hasClass( 'active' ) ) {
14
15			jQuery("#site-navigation").addClass( "flexbox" );
16			jQuery('#menu-overlay').show();
17
18		}
19		else {
20
21			jQuery("#site-navigation").removeClass( "flexbox" );
22			jQuery('#menu-overlay').hide();
23
24		}
25
26		jQuery("#site-navigation li").unbind('mouseenter mouseleave');
27		jQuery("#site-navigation .site-header-menu-items > li > a.parent").unbind('click').bind('click', function(e) {
28			// must be attached to anchor element to prevent bubbling
29			e.preventDefault();
30
31			if(jQuery(this).parent("li").hasClass('hover')) {
32
33				jQuery(this).parent("li").toggleClass("hover");
34
35			} else {
36
37				jQuery(".menu > li").removeClass('hover');
38				jQuery(this).parent("li").toggleClass("hover");
39
40			}
41			
42		});
43		
44		// handle child title clicks
45		jQuery("#site-navigation .site-header-menu-items li > a.child-title").unbind('click').bind('click', function(e) {
46
47			// must be attached to anchor element to prevent bubbling
48			if( !!jQuery( this ).siblings( ".child-links-container" ).length ) {
49
50				e.preventDefault();
51
52				if(jQuery(this).parent("li").hasClass('hover')) {
53
54					jQuery(this).parent("li").toggleClass("hover");
55
56				} else {
57
58					jQuery(".menu > li").removeClass('hover');
59					jQuery(this).parent("li").toggleClass("hover");
60
61				}
62				
63			}
64
65		});
66
67		jQuery("#site-navigation .site-header-menu-items li.child-link > a").unbind('click').bind('click', function(e) {
68
69			// must be attached to anchor element to prevent bubbling
70			if( !!jQuery( this ).siblings( ".child-sub-links-container" ).length ) {
71
72				e.preventDefault();
73
74				if(jQuery(this).parent("li").hasClass('hover')) {
75
76					jQuery(this).parent("li").toggleClass("hover");
77
78				} else {
79
80					jQuery(".menu > li").removeClass('hover');
81					jQuery(this).parent("li").toggleClass("hover");
82
83				}
84				
85			}
86
87		});
88
89	} 
90
91	// If desktop resolution, show menu
92
93	else {
94
95		jQuery('body').removeClass("no-scroll");
96		jQuery('#menu-overlay').hide();
97		// jQuery("#site-navigation").show();
98		jQuery("#site-navigation").addClass( "flexbox" );
99
100		// Prevent scroll whilst hovering menu
101		// jQuery("#site-navigation").unbind( "wheel" ).bind( "wheel", function( event ) {
102			
103		// 	mouseController.wheel(event);
104		// 	event.preventDefault();
105
106		// }, false );
107
108		jQuery("#site-navigation li").removeClass("hover");
109		jQuery("#site-navigation li a").unbind('click');
110		jQuery("#site-navigation li").unbind('mouseenter mouseleave').bind('mouseenter mouseleave', function() {
111		 	// must be attached to li so that mouseleave is not triggered when hover over submenu
112		 	jQuery(this).toggleClass('hover');
113		});
114	}
115}
116
117jQuery(document).ready(function() {
118
119	jQuery("#site-navigation .site-header-menu-items > li > a").each(function() {
120
121		if (jQuery(this).next().length > 0) {
122
123			jQuery(this).addClass("parent");
124
125		};
126
127	});
128
129	jQuery("#site-navigation .site-header-menu-items li > a.child-title").each( function() {
130
131			if( !!jQuery( this ).siblings( ".child-links-container" ).length ) {
132
133				jQuery( this ).parent( ".child-column" ).addClass( "has-sub-menu" );
134
135			}
136	});
137	
138	jQuery("#mobile-menu, #menu-overlay").click(function(e) {
139
140		e.preventDefault();
141		jQuery('#mobile-menu').toggleClass("active");
142		jQuery('body').toggleClass("no-scroll");
143
144		if( jQuery( this ).hasClass( 'active' ) ) {
145
146			jQuery("#site-navigation").addClass( "flexbox" );
147			jQuery('#menu-overlay').show();
148			adjustMenu();
149
150		}
151		else {
152
153			jQuery('#menu-overlay').hide();
154			jQuery("#site-navigation").removeClass( "flexbox" );
155
156		}
157
158	});
159
160	adjustMenu();
161})
162
163jQuery(window).bind('resize orientationchange', function() {
164
165	adjustMenu();
166
167});
168

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.