PageSourceSearch

https://www.nestlehealthscience.com.au/themes/custom/nhsc_master/js/custom_we_menu/we_mobile_menu.js?tm47zh

js nestlehealthscience.com.au collected 2026-10-05 22:45:52 UTC 3,816 bytes, 117 lines download raw bytes

1(function($) {
2
3  "use strict";
4
5  $.fn.mobileMenu = function(options) {
6
7    var settings = $.extend({
8      targetWrapper: '.navbar-we-mega-menu',
9      accordionMenu: 'true',
10      toggledClass : 'toggled'
11    }, options);
12
13    if ($(window).width() <= 1025) {
14      $(settings.targetWrapper).addClass('mobile-main-menu');
15    }
16
17    var toggleButton = this;
18
19    $(window).resize(function() {
20      if ($(window).width() <= 1025) {
21        $(settings.targetWrapper).addClass('mobile-main-menu');
22      } else {
23        $(settings.targetWrapper).removeClass('mobile-main-menu');
24        $('html, body').css('overflow', '');
25        $('html, body').css('height', '');
26        $('html, body').css('position', '');
27        $(settings.pageSelector).removeClass(settings.toggledClass);
28        $(settings.pageSelector).find('.overlay').remove();
29        $(settings.pageSelector).css('position', '');
30        item.removeClass('open');
31        item.find('ul').css('display', '');
32      }
33    });
34
35    this.off('click.mobileMenu');
36    this.on('click.mobileMenu', function(e) {
37      var wrapper = $(settings.pageSelector);
38      if (!wrapper.hasClass(settings.toggledClass)) {
39        wrapper.addClass(settings.toggledClass).css('position', 'relative');
40        $(settings.targetWrapper).addClass('mobile-main-menu');
41        if (wrapper.find('.overlay').length == 0) {
42          var overlay = $('<div class="overlay"></div>');
43          overlay.prependTo(wrapper);
44          overlay.click(function() {
45            toggleButton.trigger('click');
46          });
47          $('html, body').css('overflow', 'hidden');
48          $('html, body').css('btn-close', 'hidden');
49          $('html, body').css('height', '100%');
50          $('html, body').css('position', 'relative');
51        }
52        if (wrapper.find('.btn-close').length == 0) {
53          var btnClose = $('<span class="btn-close"></span>');
54          btnClose.prependTo(wrapper);
55
56          $('.btn-close').on('click', function(e) {
57            toggleButton.trigger('click');
58            e.preventDefault();
59            return false;
60          });
61        }
62
63      } else {
64        var overlay = wrapper.find('.overlay');
65        wrapper.css({
66          'width': '',
67          'position': ''
68        });
69        wrapper.removeClass(settings.toggledClass);
70
71        if (overlay.length > 0) {
72          wrapper.find('.btn-close').remove();
73          overlay.remove();
74          $('html, body').css('overflow', '');
75          $('html, body').css('height', '');
76          $('html, body').css('position', '');
77        }
78      }
79      e.preventDefault();
80      e.stopPropagation();
81    });
82
83    if (settings.accordionMenu == 'true') {
84      var menu = $(settings.targetWrapper).find('ul.we-mega-menu-ul').first();
85      var item = menu.find('> li[data-submenu=1]');
86      var item_active = menu.find('> li[data-submenu=1].active');
87      if ($(window).width() <= 1025) {
88        item_active.addClass('open');
89        item_active.find('> ul').css('display', 'block');
90      }
91      item.click(function() {
92        if ($(window).width() <= 1025) {
93          var $this = $(this);
94          var $sub_menu_inner = $this.find('> .we-mega-menu-submenu');
95          if (!$this.hasClass('open')) {
96            $(item).not($this).removeClass('open');
97            item.find('> .we-mega-menu-submenu').slideUp();
98            $this.toggleClass('open');
99            if ($this.hasClass('open')) {
100              $sub_menu_inner.slideDown();
101              setTimeout(function() {
102                $(settings.targetWrapper).animate({
103                  scrollTop: $this.offset().top
104                }, 700);
105              }, 500);
106
107            } else {
108              $sub_menu_inner.slideUp();
109            }
110            return false;
111          }
112        }
113      });
114    }
115  }
116
117}(jQuery));

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.