PageSourceSearch

https://www.pochvalov.cz/skins/pochvalov.cz_lego2/js/mmOptions.js?v=v6.5.0a

js pochvalov.cz collected 2026-10-03 18:40:57 UTC 4,526 bytes, 144 lines download raw bytes

1function getMmenuOptions() {
2    let mmOptions = {
3        keyboardNavigation: {
4            enable: true
5        },
6        setSelected: {
7            hover: true
8        },
9        extensions: ["position-front", "pagedim-black"],
10        // fx-menu-fade, fx-menu-zoom, fx-panels-slide-0, fx-panels-slide-100
11        // position-front, position-back, position-top, position-right, position-bottom
12        // fullscreen, listview-justify, multiline, shadow-page, shadow-panels
13        // border-full, border-none, border-offset
14        // theme-black, theme-white, theme-dark
15        // pagedim-black, pagedim-white
16        columns: false,
17        counters: true, // zobrazení počtu podpoložek
18        "navbars": [{
19            "position": "top",
20            "content": [     
21                "close",
22                "prev",
23                // "title",
24                // "breadcrumbs",
25            ]
26        }]
27    };
28    return mmOptions;
29}
30
31jQuery(document).ready(function () {
32    var showMMenu = true;
33    if (getCookie('sitestyle') === 'nocss') {
34        showMMenu = false;
35    }
36    if (showMMenu) {
37        new Mmenu(document.querySelector('#menu'), getMmenuOptions(), {
38            offCanvas: {
39                clone: true
40            }
41        });
42        new Mhead(".gcm-mmenu", {
43            hide: 200
44        });
45    }
46
47    // MMENU a11y
48    const mburger = jQuery('.gcm-mburger');
49    const mmSlideout = jQuery('#mm-0');
50    const mmNext = jQuery('#mm-menu .mm-btn_next');
51    const mmNextSpan = jQuery('#mm-menu .mm-btn_next span.mm-sronly');
52    const mmBack = jQuery('#mm-menu .mm-btn_prev');
53    const mmBackSpan = jQuery('#mm-menu .mm-btn_prev span.mm-sronly');
54    const mmMouseClose = jQuery('.mm-wrapper__blocker .mm-tabstart');
55    const mmMouseCloseText = jQuery('.mm-wrapper__blocker .mm-tabstart span');
56    const mmClose2 = jQuery('.mm-btn_close');
57    const mmClose2Span = jQuery('.mm-btn_close span');
58    
59    let mmHighslide;
60    let mmVisible = false;
61
62    mmNextSpan.text(currentTranslation.openSubmenu);
63    mmBackSpan.text(currentTranslation.closeSubmenu);
64    mmMouseCloseText.text(currentTranslation.closeMenu);
65    mmClose2Span.text(currentTranslation.closeMenu);
66
67    mburger
68    .attr({
69        'role': 'button',
70        'aria-controls': 'mm-menu',
71        'aria-expanded': 'false'
72    })
73    .click(function () {
74        mmHighslide = jQuery('.highslide-container');
75        jQuery(this).attr('aria-expanded', 'true');
76        mmSlideout.attr('aria-hidden', 'true')
77        mmHighslide.attr('aria-hidden', 'true')
78        
79        setTimeout(function() {
80            mmClose2.focus();
81        }, 100);
82
83        mmVisible = true;
84    })
85
86    mmClose2
87    .attr({
88        'role': 'button',
89        'aria-label': 'Menu',
90        'aria-controls': 'mm-menu',
91        'aria-expanded': 'true'
92    })
93    .click(function () {
94        mburger.attr('aria-expanded', 'false');
95        mmSlideout.removeAttr('aria-hidden');
96        mmHighslide.removeAttr('aria-hidden')
97        mmVisible = false;
98
99        setTimeout(function() {
100            mburger.focus();
101        }, 100);
102    })
103
104    mmMouseClose.click(function () {
105        mburger.attr('aria-expanded', 'false');
106        mmSlideout.removeAttr('aria-hidden');
107        mmHighslide.removeAttr('aria-hidden')
108        mmVisible = false;
109    })
110
111    // Přidat všem mmNext aria-expanded false a při otevření podpoložek nastavit aria-expanded na true
112    mmNext
113        .each(function () {
114            const $this = jQuery(this);
115            const listviewID = $this.attr('href').replace('#', '');
116        
117            $this.attr({
118                'aria-expanded': 'false',
119                'aria-controls': listviewID,
120                'role': 'button',
121            });
122        })
123        .on('click', function() {
124            jQuery(this).attr('aria-expanded', 'true');
125
126            const targetID = jQuery(this).attr('href');
127            const targetUL = jQuery(`${targetID} > ul > li:first-child > a:first-child`);
128
129            setTimeout(function() {
130                targetUL.focus();
131            }, 500);
132        });
133
134    // Při vracení se zpět o úroveň výše nastavovat aria-expanded na false
135    mmBack.on('click', function() {
136        const targetID = jQuery(this).attr('href').replace('#', '');
137        jQuery(`#${targetID} .mm-btn_next`).attr('aria-expanded', 'false');
138    });
139
140    // Přeskočení na začátek menu při ovládání TABem
141    mmMouseClose.on('focus', function () {
142            mmClose2.focus();
143    });
144})

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.