PageSourceSearch

https://reprocare-otakanomori.jp/js/jQ.js

js reprocare-otakanomori.jp collected 2026-10-05 03:40:33 UTC 24,246 bytes, 742 lines download raw bytes

1// JavaScript Document
2
3
4// Global ----------------------------------------
5
6const windowWidth = $(window).width(); // ウィンドウ幅取得
7const windowSm = 768; // ブレイクポイント
8const clickEventType = ((window.ontouchstart!==null)?'click':'touchend'); // クリック・タッチ判定
9
10
11// 電話番号 ----------------------------------------
12
13if(navigator.userAgent.match(/(iPhone|iPad|Android|Mobile)/)){
14  $('.js-tel').each(function(){
15    const str = $(this).html();
16    if($(this).children().is('img')){
17      $(this).html($('<a>').attr('href', 'tel:' + $(this).children().attr('alt').replace(/-/g, '')).append(str + '</a>'));
18    } else {
19      $(this).html($('<a>').attr('href', 'tel:' + $(this).text().replace(/-/g, '')).append(str + '</a>'));
20    }
21  });
22}
23
24
25// トリガーで出てくる要素 ----------------------------------------
26
27$(window).on('scroll load', function(){
28  $('.anime').each(function(){
29    const imgPos = $(this).offset().top;
30    const scroll = $(window).scrollTop();
31    const windowHeight = $(window).height();
32    if(scroll > imgPos - windowHeight + windowHeight/5){
33      $(this).addClass('trigger')
34    }
35  });
36});
37
38
39// Gナビ ----------------------------------------
40
41$('#nav #sp_menu').click(function(){ // SPハンバーガーモーダル
42  $('html, body').toggleClass('spnav_modal');
43  $(this).toggleClass('close');
44  $('#nav .gnav_subnav').slideToggle();
45  return false;
46});
47$('#nav #menu_close').click(function(){ // とじるボタン
48  $('html, body').removeClass('spnav_modal');
49  $('#nav #sp_menu').removeClass('close');
50  $('#nav .gnav_subnav').slideUp();
51  return false;
52});
53
54// ハンバーガー内 スクロール処理
55const setVh = () => {
56  const vh = window.innerHeight * 0.01;
57  document.documentElement.style.setProperty('--vh', `${vh}px`);
58}
59window.addEventListener('load', setVh);
60
61// ハンバーガー内 リサイズ処理
62let vw = window.innerWidth;
63window.addEventListener('resize', () => {
64  if (vw === window.innerWidth) {
65    return; // 画面の横幅にサイズ変動がないので処理を終える
66  }
67  // 画面の横幅のサイズ変動があった時のみ高さを再計算する
68  vw = window.innerWidth;
69  setVh();
70});
71setVh(); // 初期化
72
73// 診療内容ドロップダウンメニュー
74//if(windowWidth < windowSm){ // スマホは診療内容を開いておく
75//  $('#nav .sub').addClass('close');
76//}
77
78//クリックで開く
79$('#nav .sub').click(function(){
80  $(this).toggleClass('close').next('#nav .subbox').slideToggle();
81  if(windowWidth >= windowSm){ // PCの場合
82    $('#nav .sub').not(this).removeClass('close').next('#nav .subbox').slideUp();
83  }
84  return false;
85});
86
87//マウスホバーで開く
88//if(windowWidth < windowSm){ // スマホはクリックで開く
89//  $('#nav .sub').click(function(){
90//    $(this).toggleClass('close').next('#nav .subbox').slideToggle();
91//    return false;
92//  });
93//  } else { // PCはホバーで開く
94//  
95//let hideTimer = null;
96//let currentLi = null;
97//
98//$('#nav li').has('.sub').on('mouseenter', function () {
99//  clearTimeout(hideTimer);
100//
101//  // すでに開いている li と同じなら何もしない
102//  if (currentLi && currentLi.is(this)) return;
103//
104//  // 他のメニューを閉じる
105//  $('#nav .sub').removeClass('close');
106//  $('#nav .subbox').stop(true, true).slideUp();
107//
108//  // この li のメニューを開く
109//  $(this).find('.sub').addClass('close');
110//  $(this).find('.subbox').stop(true, true).slideDown();
111//
112//  currentLi = $(this);
113//});
114//
115//$('#nav li').has('.sub').on('mouseleave', function () {
116//  const that = $(this);
117//  hideTimer = setTimeout(function () {
118//    that.find('.sub').removeClass('close');
119//    that.find('.subbox').stop(true, true).slideUp();
120//    currentLi = null;
121//  }, 150);
122//});
123//
124//$('#nav .subbox').on('mouseenter', function () {
125//  clearTimeout(hideTimer);
126//});
127//
128//$('#nav .subbox').on('mouseleave', function () {
129//  const that = $(this).closest('li');
130//  hideTimer = setTimeout(function () {
131//    that.find('.sub').removeClass('close');
132//    that.find('.subbox').stop(true, true).slideUp();
133//    currentLi = null;
134//  }, 150);
135//});
136//  }
137
138
139
140// エリア外クリックで閉じる
141$(window).click(function(e){
142  if(windowWidth < windowSm){ // スマホの場合
143    if($('.spnav_modal').is(':visible')){
144      if(!$(e.target).closest('#nav .gnav_subnav').length){
145        $('html, body').removeClass('spnav_modal');
146        $('#nav #sp_menu, #nav #menu_close').removeClass('close');
147        $('#nav .gnav_subnav').slideUp();
148      }
149    }
150  } else { // PCの場合
151    $('html, body').removeClass('spnav_modal');
152    if($('#nav .subbox').is(':visible')){
153      if(!$(e.target).closest('#nav').length){ // タブレット対応
154        $('#nav .sub').removeClass('close');
155        $('#nav .subbox').slideUp();
156      }
157    }
158  }
159});
160
161
162// ナビ内 アンカー処理
163$('#nav a[href*="#"]').click(function(){
164  if(windowWidth < windowSm){ // スマホの場合
165    $('html, body').removeClass('spnav_modal');
166    $('#nav #sp_menu').removeClass('close');
167    setTimeout(function(){
168      $('#nav .gnav_subnav').hide();
169    }, 100);
170  } else { // PCの場合
171    $('#nav .sub').removeClass('close');
172    setTimeout(function(){
173      $('#nav .subbox').slideUp();
174    }, 100);
175  }
176});
177
178
179// カレントメニュー処理 ----------------------------------------
180
181const currentURL = location.href; // URL取得
182$('#nav .current, .subnav .current').removeClass('current');
183$('#nav a, .subnav a').filter(function(){
184  return $(this).prop('href')==currentURL;
185}).addClass('current');
186
187// アンカーナビ用
188$('#nav a[href*="#"], .sidebar a[href*="#"]').click(function(){
189  $(this).addClass('current');
190  $('#nav a[href*="#"], .sidebar a[href*="#"]').not(this).removeClass('current');
191});
192$('#nav a').filter(function(){ // アンカーなし本体
193  return $(this).prop('href')==currentURL.replace(/#.*$/,""); // ハッシュ(#以降)削除URL
194}).addClass('current');
195
196
197// トップ オープニング ----------------------------------------
198
199//const webStorage = function () {
200//  if (sessionStorage.getItem('access')) {
201//    // 2回目以降アクセス時の処理
202//    $('body.index').removeClass('opening');
203//    //$(".opening").addClass('is-active');
204//  } else {
205//    // 初回アクセス時の処理
206//    sessionStorage.setItem('access', 'true'); // sessionStorageにデータを保存
207////    $(".opening_catch").addClass('is-active'); // アニメーションを表示
208//    setTimeout(function () { // ローディングを数秒後に非表示にする
209//      $('body.index').removeClass('opening');
210////      $(".opening").addClass('is-active');
211////      $(".opening_catch").removeClass('is-active');
212//    }, 3500); // ローディングを表示する時間
213//  }
214//}
215//webStorage();
216
217
218
219// トップ キービジュアル slick ----------------------------------------
220
221$('#keyvsl').slick({
222  cssEase: 'linear', // 一定速度
223  autoplay: true, // Autoplay
224  autoplaySpeed: 5000, // インターバル
225  speed: 700, // 切替時間
226  arrows: false, // Prev/Next
227  dots: true, // インジケーター
228  fade: true,
229  pauseOnFocus: false,//フォーカスで一時停止
230  pauseOnHover: false,//マウスホバーで一時停止
231  pauseOnDotsHover: false//ドットナビをマウスホバーで一時停止
232});
233$('#keyvsl').delay(50).css('visibility','visible');
234
235
236// トップ お知らせ アコーディオン ----------------------------------------
237
238$('.news_body').hide(); // 最初は閉じておく
239$('.news_title').slice(0, 3).addClass('close'); // 最新3個は展開
240$('.news_body').slice(0, 3).toggle(); // 最新3個は展開
241$('.news_title').click(function(){
242  $(this).toggleClass('close').next('.news_body').slideToggle();
243});
244$('.news_title').keydown(function(evt){ // キーボード操作
245  if (evt.key == 'Enter') { // Enterキーで開閉
246    $(this).toggleClass('close').next('.news_body').slideToggle();
247  }
248});
249
250
251// カレンダースライド(swiper 非jQuery) ----------------------------------------
252
253//window.onload = function(){
254//  const cal_Swiper = new Swiper ('.swiper-container', {
255//    navigation: { // 次へ・前へボタン
256//      nextEl: '.swiper-button-next',
257//      prevEl: '.swiper-button-prev',
258//    },
259//  })
260//};
261
262
263// カルーセル(バラ) ----------------------------------------
264//slick版
265$(window).on('load', function(){
266  $('.loopslider').slick({
267    autoplay: true,
268    autoplaySpeed: 0,
269    speed: 7000,
270    cssEase: "linear",
271    slidesToShow: 1,        // ★重要:固定幅スライドでは 1 にする
272    variableWidth: true,    // ★固定幅を使うため必須
273    swipe: false,
274    arrows: false,
275    pauseOnFocus: false,
276    pauseOnHover: false,
277    useTransform: true,     // ★逆走防止は CSS で対応する方が安定,
278    responsive: [
279      {
280        breakpoint: 750,
281        settings: {
282          slidesToShow: 3, // 画面幅750px以下でスライド3枚表示
283        }
284      }
285    ]
286  });
287});
288
289
290//swiper版
291//const $setElm = $('.loopslider');
292//const slideTime = 25000; // スピード調整:スライド全体一周にかかる秒数(25000 = 25秒で一周)
293//$setElm.each(function(){
294//  let classFilter = $(this).attr('rel'); // 'loopleft' or 'loopright'
295//  const targetObj = $(this);
296////  const loopsliderWidth = targetObj.width(); // 未使用・コメントアウト
297//  const loopsliderHeight = targetObj.height();
298//  targetObj.children('ul').wrapAll('<div class="loopslider_wrap"></div>');
299//  const findWrap = targetObj.find('.loopslider_wrap');
300//  const listWidth = findWrap.children('ul').children('li').width();
301//  const listCount = findWrap.children('ul').children('li').length;
302//  const loopWidth = (listWidth)*(listCount);
303//  findWrap.css({
304//    top: '0',
305//    left: '0',
306//    width: ((loopWidth) * 2),
307//    height: (loopsliderHeight),
308//    overflow: 'hidden',
309//    position: 'absolute'
310//  });
311//  findWrap.children('ul').css({
312//    width: (loopWidth)
313//  });
314//  if(classFilter == 'loopleft'){
315//    loopPosLeft();
316//    findWrap.children('ul').clone().appendTo(findWrap);
317//  }
318//  if(classFilter == 'loopright'){
319//    loopPosRight();
320//    findWrap.children('ul').clone().prependTo(findWrap);
321//  }
322//  function loopPosLeft(){
323//    findWrap.css({left:'0'});
324//    findWrap.stop().animate({left:'-' + (loopWidth) + 'px'},slideTime,'linear');
325//    setTimeout(function(){
326//      loopPosLeft();
327//    },slideTime);
328//  }
329//  function loopPosRight(){
330//    const wrapWidth = findWrap.width();
331//    findWrap.css({left:'-' + ((wrapWidth) / 2) + 'px'});
332//    findWrap.stop().animate({left:'0'},slideTime,'linear');
333//    setTimeout(function(){
334//      loopPosRight();
335//    },slideTime);
336//  }
337//});
338
339
340// クリニック紹介ギャラリー slick ----------------------------------------
341
342$(".gallery_slider").each(function(){ // メイン画像
343  $(this).slick({
344    cssEase: 'linear', // 一定速度
345//    autoplay: true, // Autoplay
346//    autoplaySpeed: 5000, // インターバル
347    dots: true, // インジケーター
348    fade: true,
349    speed: 500, // 切替時間
350    adaptiveHeight: true, // 内容によって高さ可変
351    asNavFor: "#" + $(this).attr("id") + "_nav" // 複数スライド対応
352  });
353});
354$(".gallery_thum").each(function(){ // サムネ
355  $(this).slick({
356    slidesToShow: 7,
357    slidesToScroll: 1,
358    centerMode: true,
359    centerPadding: 0,
360    arrows: false, // Prev/Next
361    cssEase: 'linear', // 一定速度
362    focusOnSelect: true, // クリックで切り替え
363    asNavFor: "#" + $(this).attr("id").replace("_nav", ""), // 複数スライド対応
364    responsive: [{
365      breakpoint: 767, // スマホの場合
366      settings: {
367        slidesToShow: 3,
368      },},
369    ]
370  });
371});
372$('.gallery').delay(50).css('visibility','visible');
373
374
375// スティッキーヘッダー スクロール処理 ----------------------------------------
376
377const body_height = $(document).innerHeight(); // ページ全体の高さ
378const win_height = $(window).innerHeight(); // ウィンドウの高さ
379let pos_bottom = body_height - win_height; // ページの最下部位置
380let pos_scr = 0; // スクロールの位置を初期化
381const sp_header = $('.header .logo, #sp_menu');
382const pc_header = $('.header');
383const sticky = $('.main').offset().top;
384$(window).on('load scroll', function() {
385  if(windowWidth < windowSm){ // スマホの場合
386    if($(this).scrollTop() < pos_scr){ // 上スクロール
387      sp_header.removeClass('hide');
388    } else {
389      if(pos_scr >= 200){ // 下スクロール
390        sp_header.addClass('hide');
391      }
392    }
393    if(pos_bottom * 0.98 <= $(window).scrollTop()){ // 一番下まで行ったら出現
394      sp_header.removeClass('hide');
395    }
396  }
397  if(windowWidth >= windowSm){ // PCの場合
398    if($(this).scrollTop() < pos_scr){ // 上スクロール
399      pc_header.removeClass('hide').addClass('sticky');
400    } else {
401      if(sticky < pos_scr){ // 下スクロール
402        pc_header.addClass('hide');
403        $('.subbox').slideUp();
404        $('.sub').removeClass('close');
405      }
406    }
407    if(pos_bottom - 800 <= $(window).scrollTop()){ // 一番下まで行ったら出現
408      pc_header.removeClass('hide').addClass('sticky');
409    }
410    if(sticky > pos_scr){ // ナビが定位置に来たら
411      pc_header.removeClass('hide sticky');
412    }
413  }
414  pos_scr = $(this).scrollTop();
415});
416
417
418// PCスティッキーヘッダー処理(変化バージョン) ----------------------------------------
419//.headerバージョン
420//if(windowWidth >= windowSm){ // PCの場合
421//  const $cloneNav = $('.header').clone(true).appendTo('body'); // bodyの末尾にクローン生成
422//  $(window).on('load scroll', function() {
423//    let value = $(this).scrollTop();
424//    if ( value > sticky ) { // .mainが一番上に来たら
425//      $cloneNav.addClass('sticky').slideDown();
426//    } else {
427//      $cloneNav.slideUp();
428//    }
429//  });
430//}
431
432//#navバージョン
433//if(windowWidth >= windowSm){ // PCの場合
434//  const $cloneNav = $('#nav').clone(true).appendTo('body'); // bodyの末尾にクローン生成
435//  const headerheight = $('.header').height();
436//  $(window).on('load scroll', function() {
437//    if ($(this).scrollTop() > headerheight + 100) { // .mainが一番上に来たら
438//      $cloneNav.addClass('fixed');
439//    } else {
440//      $cloneNav.removeClass('fixed');
441//    }
442//  });
443//}
444
445
446
447// スムーズスクロール ----------------------------------------
448
449//$('.scr').click(function(){
450$('a[href^="#"]').click(function(){
451  const href= $(this).attr('href');
452  const target = $(href == '.gnav_subnav' || href == '' ? 'html' : href);
453//  const highTop = $('#nav').height(); // スティッキーヘッダーの高さ取得
454//  if(windowWidth < windowSm){ // スマホの場合
455    const position = target.offset().top - 20;
456    $('html, body').animate({scrollTop: position}, 40, 'swing');
457//  }
458//  if(windowWidth >= windowSm){ // PCスティッキーヘッダーの場合
459//    const positionPC = target.offset().top - highTop - 20;
460//    $('html, body').animate({scrollTop: positionPC}, 40, 'swing');
461//  }
462  return false;
463});
464
465
466// ページをまたいだスムーズスクロール ----------------------------------------
467//$(function() {
468//
469//  // 画面幅に応じて現在のヘッダーの高さを取得する関数
470//  function getHeaderHeight() {
471//    if (window.innerWidth < 768) {
472//      return $('.logo').outerHeight() || 0;
473//    } else {
474//      return $('.header').outerHeight() || 0;
475//    }
476//  }
477//
478//  // ✅ アンカーリンクのスムーススクロール処理
479//  $('a[href^="#"]').on('click', function(e) {
480//    const href = $(this).attr('href');
481//    const target = $(href);
482//    if (target.length) {
483//      e.preventDefault();
484//      const headerHeight = getHeaderHeight();
485//      const position = target.offset().top - headerHeight;
486//      $('html, body').animate({ scrollTop: position }, 100);
487//    }
488//  });
489//
490//  // ✅ ページ読み込み時にハッシュが指定されていた場合の補正処理
491//  if (location.hash) {
492//    const target = $(location.hash);
493//    if (target.length) {
494//      setTimeout(function() {
495//        const headerHeight = getHeaderHeight();
496//        const position = target.offset().top - headerHeight;
497//        $('html, body').scrollTop(position);
498//      }, 10); // 遅延で補正
499//    }
500//  }
501//
502//});
503
504
505
506// ページアップ単体 ----------------------------------------
507
508//$(window).scroll(function(){
509//  if($(this).scrollTop() > 200){
510//    $('#pageup').fadeIn();
511//  } else {
512//    $('#pageup').fadeOut();
513//  }
514//});
515//$('.pageup').click(function(){
516//  $('html, body').animate({ scrollTop: 0 }, 40, 'swing');
517//  return false;
518//});
519
520
521// SPフッター固定 電話・WEb予約・ページアップ ----------------------------------------
522
523$('#tel_up').hide();
524$(window).scroll(function(){
525  if($(this).scrollTop() > 200){
526    $('#tel_up').fadeIn().css('visibility', 'visible');
527  } else {
528    $('#tel_up').fadeOut();
529  }
530});
531$('#pageup').click(function(){
532  if(windowWidth < windowSm){
533  $('html, body').animate({ scrollTop: 0 }, 200, 'swing');
534  return false;
535  }
536  if(windowWidth >= windowSm){
537    $('html, body').animate({ scrollTop: 0 }, 40, 'swing');
538    return false;
539  }
540});
541
542
543// スクロールヒント ----------------------------------------
544
545//window.addEventListener('DOMContentLoaded', function(){
546//  new ScrollHint(".js-scrollable", {
547//    suggestiveShadow: true,
548//    remainingTime: 5000,
549//    i18n: {
550//      scrollable: "スクロールできます"
551//    }
552//  });
553//});
554
555
556// #navに途中からクラスつける ----------------------------------------
557
558// kv超えてからのとき ************
559//$('.sub_header').addClass('scrollStart'); //class『scrollStart』を追加
560//$('.keyvsl').addClass('scrollStart'); //class『scrollStart』を追加
561//$(function(){
562//  var scrollStart = $('.scrollStart').offset().top; //ページ上部からの距離を取得
563//  var distance = 0;
564//  
565//
566//  $(document).scroll(function(){
567//    distance = $(this).scrollTop(); //スクロールした距離を取得
568//
569//    if (scrollStart <= distance) { //スクロール距離が『.header』の位置を超えたら
570//      $('#nav').addClass('scroll'); //class『scroll』を追加
571//    } else if (scrollStart >= distance) { //スクロールがページ上部まで戻ったら
572//      $('#nav').removeClass('scroll'); //class『scroll』を削除
573//    }
574//  });      
575//});
576
577//header超えてからのとき ************
578//const headerheight = $('.header').height();
579//$(window).scroll(function(){
580//  if($(this).scrollTop() > headerheight){
581//    $('#nav').addClass('scroll');
582//  } else {
583//    $('#nav').removeClass('scroll');
584//  }
585//});
586
587
588// .headerに途中から背景つける ----------------------------------------
589//$(function(){
590//  var scrollStart = $('.header').offset().top; //ページ上部からの距離を取得
591//  var scrollEnd = $('main').offset().top - 200; //ページ上部からの距離を取得
592//  var distance = 0;
593//
594//  $(document).scroll(function(){
595//    distance = $(this).scrollTop(); //スクロールした距離を取得
596//
597//    if (scrollStart <= distance) { //スクロール距離が『.header』の位置を超えたら
598//      $('.header').addClass('bgcolor'); //class『bgcolor』を追加
599//    } else if (scrollStart >= distance) { //スクロールがページ上部まで戻ったら
600//      $('.header').removeClass('bgcolor'); //class『bgcolor』を削除
601//    }
602//    if (scrollEnd <= distance) { //スクロール距離が『.header』の位置を超えたら
603//      $('.header').addClass('bgcolor'); //class『bgcolor』を追加
604//    } else{
605//      $('.header').removeClass('bgcolor'); //class『bgcolor』を削除
606//    }
607//
608//  });      
609//});
610
611//タブ切り替え
612//$(function(){
613//  $('.tab-list-item').on('click', function(){
614//    let index = $('.tab-list-item').index(this);
615//
616//    $('.tab-list-item').removeClass('is-btn-active');
617//    $(this).addClass('is-btn-active');
618//    $('.tab-contents').removeClass('is-contents-active');
619//    $('.tab-contents').eq(index).addClass('is-contents-active');
620//  });
621//}); 
622
623//その他slickスライダー ------------------------
624$(".slide-items").slick({
625    autoplay: true, // 自動再生
626    fade: true, // スライドをフェードイン・フェードアウト
627    cssEase: 'linear',// アニメーション
628    speed: 1200, // フェードアニメーションの速度設定
629    arrows:false,
630    dots:true,
631});
632
633
634// Googleカレンダーを2つ並べて表示 -----------------------------
635//let cal1 = '<iframe id="calendar"  src="(Googleカレンダーの埋め込みURLをここに入れる)';
636//
637//let cal2 ='" frameborder="0" scrolling="no"></iframe>';
638//
639//  //来月のカレンダー
640//  let date = new Date;
641//  let Year = date.getFullYear();//年を取得
642//  let Month = date.getMonth() + 1;//月を取得.0からでなく、1からカウントを始める
643//  let nextMonth = Month + 1;
644//
645//  //12月を超えると1月に
646//  if (nextMonth > 12) {
647//    nextMonth -= 12;
648//    Year += 1;
649//  };
650//
651//  //10以下を2ケタに
652//  if (nextMonth < 10) {
653//    nextMonth = "0" + nextMonth;
654//  };
655//
656//  //日付を出力
657//  let dates = "&dates=" + String(Year) + String(nextMonth) + "01%2F" + String(Year) + String(nextMonth) + "01";
658//
659//  document.getElementById("calendar1").innerHTML = cal1 + cal2;
660//  document.getElementById("calendar2").innerHTML = cal1 + dates + cal2;
661
662
663// アコーディオン FAQの場合 ----------------------------------------
664//$(document).ready(function() {
665//  $('.faq_box dd').hide();
666//  $('.faq_box dt').click(function () {
667//      $(this).next('dd').slideToggle('slow').siblings('dd').slide
667Up('slow');
668//      $(this).siblings('dt').removeClass('active');
669//      $(this).toggleClass('active');
670//  });
671//});
672
673
674// アコーディオン dl ----------------------------------------
675//$(document).ready(function() {
676//  $('.accodion dd').hide();
677//  $('.accodion dt').click(function () {
678//      $(this).next('.accodion dd').slideToggle('slow').siblings('.accodion dd').slideUp('slow');
679//      $(this).siblings('.accodion dt').removeClass('active');
680//      $(this).toggleClass('active');
681//  });
682//});
683
684
685// アコーディオン その他の場合 ----------------------------------------
686//$(document).ready(function() {
687//  $('.accodion .open').hide();
688//  $('.accodion .btn').click(function () {
689//      $(this).next('.accodion .open').slideToggle('slow').siblings('.accodion .open').slideUp('slow');
690//      $(this).siblings('.accodion .btn').removeClass('active');
691//      $(this).toggleClass('active');
692//  });
693//});
694
695
696// タグを追加 ----------------------------------------
697$('.tit_01').wrapInner('<span />');
698$('.tre_menu a').wrapInner('<span />');
699
700// .特定タグ内の()にタグを追加 ----------------------------------------
701//$('.tit_01').each(function() {
702//  // 各 .tre 要素の中を再帰的に処理
703//  $(this).find('*').addBack().contents().each(function() {
704//    if (this.nodeType === 3) { // テキストノードのみ対象
705//      const text = this.nodeValue;
706//      const replaced = text.replace(/((.*?))/g, '<span>$1</span>');
707//      if (replaced !== text) {
708//        $(this).replaceWith(replaced);
709//      }
710//    }
711//  });
712//});
713
714
715// フッターの最後の|を改行部分で消す ----------------------------------------
716  function LastInRow() {
717    const $items = $(".footer ul li:visible");
718    $items.removeClass("last-in-row");
719
720    const rowMap = {};
721    $items.each(function () {
722      const top = Math.round($(this).offset().top);
723      if (!rowMap[top]) {
724        rowMap[top] = [];
725      }
726      rowMap[top].push(this);
727    });
728
729    $.each(rowMap, function (_, row) {
730      const lastItem = row[row.length - 1];
731      $(lastItem).addClass("last-in-row");
732    });
733  }
734
735  function runLastInRowWithDelay() { // 少し待つ
736    setTimeout(() => {
737      requestAnimationFrame(LastInRow);
738    }, 100);
739  }
740
741  $(window).on("load resize", runLastInRowWithDelay);
742

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.