PageSourceSearch

https://webseller.co.kr/assets/js/mobile.sidemenu.js?20260925o

js webseller.co.kr collected 2026-10-08 23:18:54 UTC 3,048 bytes, 86 lines download raw bytes

1$(function() {
2    var $btn_side = $('#btn_side'),
3        $side_menu = $('#side_menu'),
4        $side_wr = $('#side_menu .side_wr'),
5        scroll_lock_y = 0;
6
7    if ( ! $side_menu.length || ! $btn_side.length) return;
8
9    $side_wr.css({'right':'-250px'});   //초기화
10
11    // iScroll 제거에 따른 중화: 구형 스킨 CSS가 iScroll용 클리핑(.side_inner_rel의
12    // height:100%+overflow:hidden, .side_inner_abs의 absolute)을 갖고 있어도
13    // 패널이 네이티브 overflow 스크롤로 동작하도록 풀어 준다.
14    $('#isroll_wrap').css({'height': 'auto', 'overflow': 'visible'});
15    $side_menu.find('.side_inner_abs').css({'position': 'static'});
16
17    // 사이드바가 열린 동안 배경 페이지 스크롤을 잠근다.
18    // overflow:hidden만으로는 iOS 터치 스크롤이 막히지 않아 body를 fixed로 고정하고,
19    // 현재 스크롤 위치만큼 위로 당겨 화면이 튀지 않게 한다.
20    function lock_body_scroll() {
21        scroll_lock_y = window.pageYOffset || document.documentElement.scrollTop || 0;
22        $('body').addClass('side_menu_lock').css('top', -scroll_lock_y + 'px');
23    }
24
25    function unlock_body_scroll() {
26        $('body').removeClass('side_menu_lock').css('top', '');
27        window.scrollTo(0, scroll_lock_y);
28    }
29
30    function open_side() {
31        if ($btn_side.data('toggle_enable')) return;
32        $btn_side.data('toggle_enable', true);
33        lock_body_scroll();
34        $side_menu.show();
35        $side_wr.stop(true, true).animate({'right': '0px'}, 200);
36    }
37
38    function close_side() {
39        if ( ! $btn_side.data('toggle_enable')) return;
40        $btn_side.data('toggle_enable', false);
41        $side_wr.stop(true, true).animate({'right': '-250px'}, 160, function() {
42            $side_menu.hide();
43            unlock_body_scroll();
44        });
45    }
46
47    $btn_side.on('click', function() {
48        if ($btn_side.data('toggle_enable')) {
49            close_side();
50        } else {
51            open_side();
52        }
53    });
54
55    // 패널(.side_wr) 밖 어두운 배경을 누르면 닫기
56    $side_menu.on('click', function(e) {
57        if ( ! $(e.target).closest('.side_wr').length) {
58            close_side();
59        }
60    });
61
62    $('.m_close').on('click', function() {
63        close_side();
64    });
65
66    // 하위 메뉴 아코디언
67    $(document).on('click', '.subopen', function() {
68        var $submenu = $('.drop-downorder-' + $(this).attr('data-menu-order'));
69        if ($submenu.is(':visible')) {
70            $submenu.slideUp('fast');
71        } else {
72            $submenu.slideDown('fast');
73        }
74    });
75
76    // 뒤로가기 캐시(bfcache)로 돌아왔을 때 열린 채 굳지 않게 초기화
77    window.addEventListener('pageshow', function(e) {
78        if (e.persisted && $btn_side.data('toggle_enable')) {
79            $btn_side.data('toggle_enable', false);
80            $side_wr.stop(true, true).css({'right': '-250px'});
81            $side_menu.hide();
82            unlock_body_scroll();
83        }
84    });
85
86});

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.