PageSourceSearch

https://www.thine.co.jp/files/user/common/js/common.js?v=1646628101

js thine.co.jp collected 2026-09-26 03:10:52 UTC 10,134 bytes, 317 lines download raw bytes

1var ww, wh, scrolled_top;
2var open_flg = false, bp = 1080, target, header_trigger, sort_flg = false, lang_h_flg = false, lang_f_flg = false;
3var el_header_sp, el_btn_header, el_header_menu, el_mega, el_mega_left, el_mega_right, el_btn_submenu;
4var el_side_nav = document.querySelectorAll('#side_contents_right');
5// var kv_job_h;
6
7// ヘッダー色変え
8var headerChangeHandler = function(){
9    if(jQuery('.header').attr('data-dark-theme')){
10        if(header_trigger && jQuery(window).scrollTop()>header_trigger){
11            jQuery('.header').removeClass('header--top');
12        }else{
13            jQuery('.header').addClass('header--top');
14        }
15    }
16};
17
18// SP開閉
19var headerMenuHandler = function(){
20    el_btn_header.on('click', function(){
21        switch(open_flg){
22            case true:
23                el_header_sp.hide();
24                jQuery(this).removeClass('open');
25                megaMenuClose();
26                jQuery(window).scrollTop(scrolled_top);
27                headerChangeHandler();
28                break;
29            default:
30                el_header_sp.show();
31                jQuery(this).addClass('open');
32                scrolled_top = jQuery(window).scrollTop();
33                jQuery(window).scrollTop(0);
34                jQuery('.header').removeClass('header--top');
35                open_flg = true;
36                break;
37        }
38    });
39};
40
41// メガメニュー
42var megaMenuHandler = function(){
43    el_header_menu.each(function(){
44        if(jQuery(this).children().length<=1) jQuery(this).addClass('no-menu');
45    });
46    // jQuery('.headerMenu__item.is-current', el_header_sp).addClass('open').find('.megaMenu').css({display:'flex'});
47
48    jQuery('a[data-target]', el_header_menu).on('click', function(e){
49        e.preventDefault();
50        var active = jQuery(this).attr('data-target');
51
52        el_header_menu.removeClass('open');
53
54        switch(open_flg){
55            case true:
56                if(target == active){
57                    megaMenuClose();
58                    break;
59                }
60            default:
61                megaMenuOpen(active);
62                jQuery('.'+active).parent('li').addClass('open');
63                break;
64        }
65    });
66
67    jQuery('.megaMenu__close').on('click', megaMenuClose);
68
69    // 内部切替
70    el_mega_left.on('mouseover', function(){
71        if(!jQuery(this).hasClass('no-menu')){
72            var active = jQuery('.megaMenuLeft li', jQuery('.'+target)).index(this);
73            megaMenuChange(active);
74        }
75    });
76};
77
78var megaMenuOpen = function(active){
79    target = active;
80    megaMenuChange(0);
81    el_mega.hide();
82    jQuery('.'+target).css({display:'flex'});
83    open_flg = true;
84};
85
86var megaMenuClose = function(){
87    el_mega_left.siblings('li').find('a').removeClass('on');
88    el_mega_right.removeClass('on');
89    el_mega.hide();
90    el_header_menu.removeClass('open');
91    target = '';
92    open_flg = false;
93};
94
95var megaMenuChange = function(active){
96    el_mega_left.siblings('li').find('a').removeClass('on');
97    el_mega_right.removeClass('on');
98
99    jQuery('.megaMenuLeft li', jQuery('.'+target)).eq(active).find('a').addClass('on');
100    jQuery('.megaMenuRight', jQuery('.'+target)).eq(active).addClass('on');
101};
102
103// フッター
104var footerMenuHandler = function(){
105    jQuery('.footerMenu__ttl').each(function(){
106        if(jQuery(this).siblings('.footerMenu__list').length>0) jQuery(this).find('a').addClass('has-menu');
107    });
108
109    jQuery('.footerMenu__ttl a.has-menu').on('click', function(e){
110        e.preventDefault();
111        jQuery(this).toggleClass('open').parent().next().toggleClass('open');
112    });
113};
114
115var pageTopHandler = function(){
116    jQuery(".pagetop").hide();
117    jQuery('.pagetop').click(function () {
118        jQuery('body,html').animate({
119        scrollTop: 0
120        }, 800);
121        return false;
122    });
123};
124
125var selectHandler = function(){
126    jQuery('*').on('click',function(){
127        // ↓のdocument clickを強制発火させるためのイベント登録につき、削除禁止
128    });
129    jQuery(document).on('click', function(e){
130        if(!sort_flg && jQuery(e.target).hasClass('select__act')){
131            jQuery(".navi__select").slideDown();
132            sort_flg = true;
133        }else{
134            jQuery(".navi__select").slideUp();
135            sort_flg = false;
136        }
137
138        if(lang_h_flg){
139            jQuery(".headerLang__list").slideUp();
140            lang_h_flg = false;
141        }else if(jQuery(e.target).hasClass('headerLang__select') || jQuery(e.target).parent().hasClass('headerLang__select')){
142            jQuery(".headerLang__list").slideDown();
143            lang_h_flg = true;
144        }
145
146        if(!lang_f_flg && jQuery(e.target).hasClass('footerLang__select')){
147            jQuery(".footerLang__list").slideDown();
148            lang_f_flg = true;
149        }else{
150            jQuery(".footerLang__list").slideUp();
151            lang_f_flg = false;
152        }
153    });
154};
155
156// event handler
157var resizeHandler = function(){
158    ww = window.innerWidth;
159    wh = window.innerHeight;
160    // kv_job_h = jQuery('.kv__job').innerHeight();
161
162    el_header_sp.css({'padding-top':jQuery('.header').innerHeight()});
163
164    // ヘッダー
165    setTimeout(function(){
166        if(jQuery('.header').hasClass('js__header--top')) header_trigger = jQuery('.top__ttl').offset().top - 40;
167        if(jQuery('.header').hasClass('js__header--jobs')) header_trigger = jQuery('.kv__job').innerHeight();
168    }, 300);
169
170    // メガメニュー
171    if(ww<=bp && open_flg){
172        el_header_sp.show();
173        el_btn_header.addClass('open');
174        jQuery('.header').removeClass('header--top');
175    }
176    if(ww>bp){
177        el_header_sp.hide();
178        headerChangeHandler();
179        if(!target){
180            el_btn_header.removeClass('open');
181            open_flg = false;
182        }
183    }
184
185    // ローカルナビ
186    if(ww > 559) el_submenu.show();
187    if(ww <= 559 && !el_btn_submenu.hasClass('open')) el_submenu.hide();
188};
189
190var scrollHandler = function(){
191    // ページトップボタン
192    height = jQuery(document).height(); 
193    scrollPosition = jQuery(window).height() + jQuery(window).scrollTop();
194    footerHeight = jQuery("#footer").innerHeight();
195    if(jQuery(this).scrollTop() > 100){
196        jQuery(".pagetop").fadeIn();
197    }else{
198        jQuery(".pagetop").fadeOut();
199    }
200    
201    if(height - scrollPosition <= footerHeight) {
202        jQuery(".pagetop").css({
203            "bottom": footerHeight
204        });
205        jQuery(".pagetop").addClass('stop');
206    }else{
207        jQuery(".pagetop").css({
208            "bottom": "0"
209        });
210        jQuery(".pagetop").removeClass('stop');
211    }
212
213    // ヘッダー
214    if(!open_flg || ww>bp) headerChangeHandler();
215};
216
217
218
219// 右カラム追従
220// Stickyfill.add(el_side_nav);
221
222// exe
223jQuery(function(){
224    el_header_sp = jQuery('.header__menu.is-spHead');
225    el_btn_header = jQuery('.headerMenu__btn');
226    el_header_menu = jQuery('.headerMenu__item');
227    el_mega = jQuery('.megaMenu');
228    el_mega_left = jQuery('.megaMenuLeft li');
229    el_mega_right = jQuery('.megaMenuRight');
230    el_btn_submenu = jQuery(".navi__menu");
231    el_submenu = jQuery('.navi__list');
232
233    headerMenuHandler();
234    megaMenuHandler();
235    footerMenuHandler();
236    pageTopHandler();
237    selectHandler();
238
239    resizeHandler();
240    jQuery(window).on('resize', resizeHandler);
241
242    scrollHandler();
243    jQuery(window).on('scroll', scrollHandler);
244
245    if(location.hash){
246        setTimeout(function(){
247            jQuery(window).scrollTop(jQuery(location.hash).offset().top-jQuery('.header').innerHeight()-20);
248        }, 50);
249    }
250
251
252
253    // トップページ用ヘッダー再調整(ローディング後)
254    if(jQuery('.header').hasClass('js__header--top')){
255        jQuery(window).on('load', function(){
256            setTimeout(function(){
257                header_trigger = jQuery('.top__ttl').offset().top - 40;
258            }, 900);
259        });
260    }
261
262    // テーブルの横スクロール
263    jQuery('.scroll').each(function(){
264        jQuery(this).setListmousedragscroll();
265    });
266    // jQuery('.scroll').setListmousedragscroll();
267    // jQuery('.scroll02').setListmousedragscroll();
268
269    // アコーディオン
270    jQuery(".acd__list dt.open").next().slideToggle();
271    jQuery(".acd__list dt.open span").text("CLOSE");
272    jQuery(".acd__list dt").on("click", function() {
273        jQuery(this).toggleClass("open");
274        jQuery(this).next().slideToggle();
275        if(jQuery(this).hasClass("open")){
276            jQuery("span",this).text("CLOSE");
277        }else{
278            jQuery("span",this).text("OPEN");
279        }
280    });
281
282    // 全て表示(資料DL等)
283    jQuery(".sideNavi__dl__btn").on("click", function() {
284        jQuery(this).addClass('open');
285        jQuery(".sideNavi__dl").addClass('open');
286    });
287
288    // 関連情報(製品下方等)
289    // var winWidth = jQuery(window).width();
290    // if(winWidth <= 559){
291    //     jQuery(".relation .heading03").on("click", function() {
292    //         jQuery(this).toggleClass("open");
293    //         jQuery(this).next().slideToggle();
294    //     });
295    // }
296
297    // 汎用記事グループでの不要サブナビゲーション非表示
298    if(jQuery(".contentNavi .navi__inner").length > 0){
299        if(jQuery(".contentNavi .navi__inner").html().trim()=='') jQuery(".contentNavi").remove();
300    }
301
302    // サイト内検索
303    jQuery('.header__search').on('click', function(){
304        jQuery('#modal').show();
305    });
306    jQuery('#modal button, .modal__bg').on('click', function(){
307        jQuery('#modal').hide();
308    });
309
310    // ローカルナビ
311    el_btn_submenu.on("click", function() {
312        if(ww <= 559){
313            jQuery(this).toggleClass("open");
314            el_submenu.slideToggle();
315        }
316    });
317});

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.