PageSourceSearch

https://www.cytivalifesciences.co.kr/wp-content/plugins/oxyextras/…/assets/offcanvas-init.js?ver=1.0.4

js cytivalifesciences.co.kr collected 2026-10-08 07:24:57 UTC 13,509 bytes, 360 lines download raw bytes

1jQuery(document).ready(oxygen_init_offcanvas);
2function oxygen_init_offcanvas($) {
3    
4    let touchEvent = 'click';
5    let previousFocus = false;
6
7    'use strict';
8
9    $('.oxy-off-canvas .offcanvas-inner').each(function() {
10
11        var offCanvas = $(this),
12            triggerSelector = offCanvas.data('trigger-selector'),
13            offCanvasOutside = offCanvas.data('click-outside'),
14            offCanvasEsc = offCanvas.data('esc'),
15            offCanvasStart = offCanvas.data('start'),
16            offCanvasBackdrop = offCanvas.data('backdrop'),
17            offCanvasFocusSelector = offCanvas.data('focus-selector'),
18            backdrop = offCanvas.prev('.oxy-offcanvas_backdrop'),
19            menuHashLink = offCanvas.find('a[href*=\\#]').not(".menu-item-has-children > a"),
20            reset = offCanvas.data('reset'),
21            mediaPlayer = offCanvas.find('.oxy-pro-media-player vime-player'),
22            otherOffcanvas = offCanvas.data('second-offcanvas'),
23            maybeHashClose = offCanvas.data('hashclose'),
24            offcanvasPush = offCanvas.data('content-push'),
25            offcanvasPushContent = offCanvas.data('content-selector'),
26            offcanvasPushDuration = offCanvas.data('content-duration'),
27            offcanvasID = offCanvas.parent('.oxy-off-canvas').attr('ID'),
28            burgerSync = offCanvas.data('burger-sync'),
29            maybeOverflow = offCanvas.data('overflow');
30
31            
32        if (false !== offCanvas.data('stagger-menu')) {
33            offCanvas.find('.oxy-slide-menu_list > .menu-item').addClass('aos-animate');
34            offCanvas.find('.oxy-slide-menu_list > .menu-item').attr( { "data-aos": offCanvas.data('stagger-menu') } );
35        }
36
37        if (! $(this).hasClass('oxy-off-canvas-toggled') ) {
38            $(this).find(".aos-animate:not(.oxy-off-canvas-toggled .aos-animate)").addClass("aos-animate-disabled").removeClass("aos-animate");
39        }
40
41        ariaExpandToggle('false');
42
43        if ( true === offCanvas.data('auto-aria') ) {
44
45            $(triggerSelector).each(function(i,trigger) {
46
47                if ( $(trigger).hasClass('oxy-burger-trigger') && $(trigger).children('.hamburger').length ) {
48                    $(trigger).children('.hamburger').attr('aria-controls', offCanvas.attr('id'));
49                } else {
50                    $(trigger).attr('aria-controls', offCanvas.attr('id'));
51                }
52            });
53        }
54
55        if ( true === offCanvas.data('focus-trap') ) {
56
57            const keyboardfocusableElements = offCanvas.find(
58                'a[href], button, input, textarea, select, details, [tabindex]'
59              );
60
61              if (keyboardfocusableElements.length) {
62                 
63                keyboardfocusableElements[keyboardfocusableElements.length - 1].addEventListener('keydown', (e) => {
64
65                    if (!e.shiftKey && e.key === 'Tab') {
66                        e.preventDefault()
67                        keyboardfocusableElements[0].focus()
68                    }
69
70                })
71
72                keyboardfocusableElements[0].addEventListener('keydown', (e) => {
73
74                    if (e.shiftKey && e.key === 'Tab') {
75                        e.preventDefault()
76                        keyboardfocusableElements[keyboardfocusableElements.length - 1].focus()
77                    }
78
79                })
80
81              }
82        }
83        
84        function doOffCanvas(triggerSelector) { 
85            
86            if ($(triggerSelector).hasClass('oxy-close-modal')) {
87                oxyCloseModal();
88            } 
89            
90            if (!offCanvas.parent().hasClass('oxy-off-canvas-toggled')) {
91                openOffCanvas();
92            } else {
93                closeOffCanvas();
94            }
95        }
96        
97        if ( $(triggerSelector).hasClass('oxy-burger-trigger') && $(triggerSelector).children('.hamburger').length ) {
98            
99            let triggerSelectorTouch = $( triggerSelector ).children('.hamburger').data('touch');
100            let touchEvent = 'ontouchstart' in window ? triggerSelectorTouch : 'click'; 
101            
102            $(triggerSelector).on(touchEvent, function(e) {
103                e.stopPropagation();
104                e.preventDefault();
105                
106                if (true === burgerSync) {
107                    $(triggerSelector).not('#' + $(this).attr('ID')).children('.hamburger').toggleClass('is-active');
108                }   
109
110                if ( !e.target.closest('.oxy-off-canvas') ) {
111                    previousFocus = e.target.closest(triggerSelector);
112                }
113
114                doOffCanvas(triggerSelector);
115                
116            });
117        } else {
118            
119            let triggerSelectorTouch = touchEvent;
120            $(triggerSelector).on(triggerSelectorTouch, function(e) {
121                e.stopPropagation();
122                e.preventDefault();
123                doOffCanvas(triggerSelector);
124            });
125        }
126
127
128        // Backdrop Clicked
129        offCanvas.siblings('.oxy-offcanvas_backdrop').on(touchEvent, function(e) {
130            e.stopPropagation();
131            if (offCanvasOutside === true) {
132                closeBurger();
133                closeLottie();
134                closeOffCanvas();
135            }
136
137        });
138
139        // Pressing ESC from inside the offcanvas will close it
140        offCanvas.keyup(function(e) {
141            if (offCanvasEsc === true) {
142                if (e.keyCode === 27) {
143                    closeBurger();
144                    closeLottie();
145                    closeOffCanvas();
146                }
147            }
148        });
149        
150        if (maybeHashClose === true) {
151
152            $(document).on("click", '#' + offcanvasID + ' a[href*=\\#]', function (e) {
153                
154                e.stopPropagation();
155                
156                if ( ( !$(this).not(".menu-item-has-children > a") ) || $(this).is('[href="#"]' ) ) {
157                    return;
158                }
159
160                if ( $(this).is(".oxy-table-of-contents_list-item > a") ) {
161                    return;
162                }
163
164                if ( $(this).is(".mm-btn") || $(this).is(".mm-navbar__title") ) {
165                    return;
166                }
167
168                
169                
170                if (this.pathname === window.location.pathname) {
171                    closeBurger();
172                    closeLottie();
173                    closeOffCanvas();
174                }
175            });
176            
177        }   
178        
179        if (offcanvasPush) {
180            $(offcanvasPushContent).attr('data-offcanvas-push', '#' + offcanvasID);
181            $(offcanvasPushContent).css({
182                                        "--offcanvas-push" : offcanvasPush + "px",
183                                        "--offcanvas-push-duration" : offcanvasPushDuration + 's',
184                                    });
185            
186        }
187
188        function ariaExpandToggle($state) {
189            if ( true === offCanvas.data('auto-aria') ) {
190                $(triggerSelector).each(function(i,trigger) {
191                    if ( $(trigger).hasClass('oxy-burger-trigger') && $(trigger).children('.hamburger').length ) {
192                        $(trigger).children('.hamburger').attr('aria-expanded', $state);
193                    } else {
194                        $(trigger).attr('aria-expanded', $state);
195                        $(trigger).attr('role','button');
196                    }
197                });
198            }
199        }
200
201        function inertToggle($state) {
202            if ( false !== offCanvas.data('inert') ) {
203                if ('true' === $state) {
204                    offCanvas.attr('inert','');
205                } else {
206                    offCanvas.removeAttr('inert');
207                }
208            }
209        }
210
211        function openOffCanvas() {
212            offCanvas.parent().addClass('oxy-off-canvas-toggled');
213            $(offcanvasPushContent).addClass('oxy-off-canvas-toggled');
214            $('body,html').addClass('off-canvas-toggled');
215            $('body,html').addClass('toggled' + offcanvasID);
216
217            if (true === offCanvasStart) {
218                doClose();
219            } else {
220                doOpen()
221            }
222            
223        }
224
225        function closeOffCanvas() {
226            $('body,html').removeClass('off-canvas-toggled');
227            $('body,html').removeClass('toggled' + offcanvasID);
228            offCanvas.parent().removeClass('oxy-off-canvas-toggled');
229            $(offcanvasPushContent).removeClass('oxy-off-canvas-toggled');
230
231            if (true === offCanvasStart) {
232                doOpen()
233            } else {
234                doClose();
235            }
236            
237        }
238
239        function doOpen() {
240                offCanvas.find(".aos-animate-disabled").removeClass("aos-animate-disabled").addClass("aos-animate");
241                offCanvas.parent('.oxy-off-canvas').trigger('extras_offcanvas:open');
242                
243                inertToggle('false')
244                setTimeout(function() {
245                    offCanvas.attr('aria-hidden','false');
246                }, 0);
247                
248                ariaExpandToggle('true');
249
250                
251                
252                if (offCanvasFocusSelector) {
253                    setTimeout(function() {
254                        offCanvas.parent().find(offCanvasFocusSelector).eq(0).focus();
255                    }, 0);
256                }
257        }
258
259        function doClose() {
260                inertToggle('true');
261                offCanvas.attr('aria-hidden','true');
262               
263                setTimeout(function(){
264                    offCanvas.find(".aos-animate").removeClass("aos-animate").addClass("aos-animate-disabled");
265                }, reset); // wait before removing the animate class 
266                
267                $(offCanvas).parent('.oxy-off-canvas').trigger('extras_offcanvas:close');
268                if (otherOffcanvas) {
269                    $(otherOffcanvas).children('.offcanvas-inner').attr('aria-hidden','true');
270                    $(otherOffcanvas).children('.offcanvas-inner').removeAttr('inert');
271                    $(otherOffcanvas).removeClass('oxy-off-canvas-toggled');
272                }
273
274                ariaExpandToggle('false');
275                
276                mediaPlayer.each(function() {
277                    $(this)[0].pause(); // turn off any pro media players
278                });
279
280                setTimeout(function() {
281
282                    if (!!previousFocus) {
283
284                        if ( $(previousFocus).find('.hamburger') ) {
285                            $(previousFocus).find('.hamburger').focus();
286                        } else {
287                            $(previousFocus).focus();
288                        }
289                    }
290                    
291                }, 0);
292        }
293        
294        function closeBurger() {
295            
296            if ( ( $(triggerSelector).children('.hamburger').length > 0) && ($(this).children('.hamburger').data('animation') !== 'disable')) {
297                $(triggerSelector).children('.hamburger').removeClass('is-active');
298            }
299        }
300
301        function closeLottie() {
302            
303            if ( ( $(triggerSelector).children('lottie-player').length > 0) ) {
304                $(triggerSelector).children('lottie-player').trigger('click');
305            }
306        }
307
308        /* For programmatically opening */
309        function extrasOpenOffcanvas($extras_offcanvas) {
310            
311            var thisOffcanvas = $($extras_offcanvas);
312            var thisoffcanvasPushContent = thisOffcanvas.children('.offcanvas-inner').data('content-selector');
313            var thisoffCanvasFocusSelector = thisOffcanvas.children('.offcanvas-inner').data('focus-selector');
314
315            thisOffcanvas.addClass('oxy-off-canvas-toggled');
316            $(offcanvasPushContent).addClass('oxy-off-canvas-toggled');
317            offCanvas.attr('aria-hidden','false');
318            $('body,html').addClass('off-canvas-toggled');
319            thisOffcanvas.find(".aos-animate-disabled").removeClass("aos-animate-disabled").addClass("aos-animate");
320            thisOffcanvas.trigger('extras_offcanvas:open');
321            
322            if (thisoffCanvasFocusSelector) {
323                thisOffcanvas.find(thisoffCanvasFocusSelector).eq(0).focus();
324            }
325            
326        }
327
328        if (true !== offCanvasStart) {
329            offCanvas.attr('aria-hidden','true');
330            inertToggle('true');
331        } else {
332            offCanvas.attr('aria-hidden','false');
333        }
334
335        // Expose function
336        window.extrasOpenOffcanvas = extrasOpenOffcanvas;
337    
338            var stagger = offCanvas.data('stagger');
339                
340            // Make sure AOS animations are reset for elements inside after everything has loaded
341            setTimeout(function(){
342                if (! offCanvas.hasClass('oxy-off-canvas-toggled') ) {
343                    offCanvas.find(".aos-animate:not(.oxy-off-canvas-toggled .aos-animate)").addClass("aos-animate-disabled").removeClass("aos-animate");
344                }
345            }, 40); // wait
346            
347            if (stagger != null) {
348            
349                var delay = offCanvas.data('first-delay');
350                offCanvas.find('[data-aos]').not('.not-staggered').each(function() {
351                    delay = delay + stagger;
352    
353                    $(this).attr('data-aos-delay', delay);
354                });
355    
356            }
357
358    });
359}
360

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.