<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/*-------------------------------
	ã‚¹ãƒžãƒ›ç”¨ãƒ¡ãƒ‹ãƒ¥ãƒ¼
-------------------------------*/
// å¤‰æ•°å®šç¾© -------------------------
const memubtn = document.getElementById('MenuToggleBtn');  // ãƒ¡ãƒ‹ãƒ¥ãƒ¼é–‹é–‰ã®ãƒœã‚¿ãƒ³
const wrapper = document.getElementById('Wrapper'); // ãƒšãƒ¼ã‚¸å…¨ä½“ã‚’å›²ã‚€è¦ç´&nbsp; wrapper
const nav = document.getElementById('Menu');         // ãƒ‰ãƒ­ãƒ¯ãƒ¼ãƒ¡ãƒ‹ãƒ¥ãƒ¼è¦ç´&nbsp; nav
const openClass = 'navOpen';                        // ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚ªãƒ¼ãƒ—ãƒ³æ™‚ã« wrapper ã«ã¤ãclass
let navopen = false;                                // ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚ªãƒ¼ãƒ—ãƒ³ã®åˆ¤å®š

// é–¢æ•°å®šç¾© -------------------------
const navToggle = () =&gt; {
  if (navopen) {
    navClose();
  } else {
    navOpen();
  }
}

// ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚ªãƒ¼ãƒ—ãƒ³æ™‚ã®é–¢æ•°
const navOpen = () =&gt; {
  navopen = true;
  const top = window.pageYOffset;
  wrapper.setAttribute('style', `top:-${top}px`);
  wrapper.classList.add(openClass);
}

// ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚¯ãƒ­ãƒ¼ã‚ºæ™‚ã®é–¢æ•°
const navClose = () =&gt; {
  const closeFirst = (callback) =&gt; {
    navopen = false;
    let scrolltop = wrapper.style.top;
    scrolltop = scrolltop.slice(1, -2);
    wrapper.style.top = "";
    wrapper.classList.remove(openClass);
    callback(scrolltop);
  }
  closeFirst((scrolltop) =&gt; {
    window.scrollTo(0, scrolltop);
  });
}

// é–¢æ•°å®Ÿè¡Œ -------------------------
if (memubtn != null) {
  memubtn.addEventListener('click', navToggle, false);
}

/*-------------------------------
	ã‚¹ãƒ&nbsp;ãƒ¼ã‚¹ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ«
-------------------------------*/
// é–¢æ•°å®šç¾© -------------------------
const smoothScroll = () =&gt; {
  let links = document.querySelectorAll('a[href^="#"]');
  const speed = 500;          // ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ«ã‚¹ãƒ”ãƒ¼ãƒ‰   
  const divisor = 100;        // åˆ†å‰²æ•°
  const tolerance = 5;        // è¨±å®¹èª¤å·®
  const headerHeight = 50;     // å›ºå®šãƒ˜ãƒƒãƒ€ãƒ¼ãŒã‚ã‚‹å&nbsp;´åˆã¯ãã®é«˜ã•åˆ†ãšã‚‰ã™
  const interval = speed / divisor;
  for (let i = 0; i &lt; links.length; i++) {
    links[i].addEventListener('click', (e) =&gt; {
      e.preventDefault();
      let nowY = window.pageYOffset;
      const href = e.currentTarget.getAttribute('href');
      const target = document.querySelector(href);
      if (target != null) {
        const targetRectTop = target.getBoundingClientRect().top;
        const targetY = targetRectTop + nowY - headerHeight;
        const minY = Math.abs((targetY - nowY) / divisor);
        doScroll(minY, nowY, targetY, tolerance, interval);
      }
    });
  }
}

const doScroll = (minY, nowY, targetY, tolerance, interval) =&gt; {
  let toY;
  if (targetY &lt; nowY) {
    toY = nowY - minY;
  } else {
    toY = nowY + minY;
  }
  window.scrollTo(0, toY);
  if (targetY - tolerance &gt; toY || toY &gt; targetY + tolerance) {
    window.setTimeout(doScroll, interval, minY, toY, targetY, tolerance, interval);
  } else {
    return false;
  }
}

// é–¢æ•°å®Ÿè¡Œ -------------------------
smoothScroll();

/*-------------------------------
	ãƒ•ãƒƒã‚¿ãƒ¼ã§æ­¢ã¾ã‚‹ãƒšãƒ¼ã‚¸ãƒˆãƒƒãƒ—ãƒœã‚¿ãƒ³
-------------------------------*/
const pageTopBtnPositionSet = () =&gt; {
  /*---------- è¨­å®š ----------*/
  //ãƒšãƒ¼ã‚¸ãƒˆãƒƒãƒ—ãƒœã‚¿ãƒ³ã®ID
  const pageTopBtn = document.getElementById('PageTopBtn');
  //ãƒ•ãƒƒã‚¿ãƒ¼ã®ID
  const footer = document.getElementById('Footer');

  //ãƒšãƒ¼ã‚¸ãƒˆãƒƒãƒ—ãƒœã‚¿ãƒ³ã‚’è¡¨ç¤ºã—ã&nbsp;ã™Yä½ç½®
  const pageTopBtnDisplayY = 200;

  //ãƒšãƒ¼ã‚¸ãƒˆãƒƒãƒ—ãƒœã‚¿ãƒ³ã®bottomã®ä½ç½®ã‚’è¨­å®š
  const pageTopBtnStyleBottom = 30;
  /*---------- ã“ã“ã¾ã§ ----------*/

  //ãƒ•ãƒƒã‚¿ãƒ¼ã®é«˜ã•å–å¾—
  const footerHeight = footer.offsetHeight;
  //ãƒšãƒ¼ã‚¸ã®é«˜ã•å–å¾—
  let documentHeight = Math.max.apply(null, [document.body.clientHeight, document.body.scrollHeight, document.documentElement.scrollHeight, document.documentElement.clientHeight]);

  //ã‚¦ã‚¤ãƒ³ãƒ‰ã‚¦ã®é«˜ã•å–å¾—
  let windowHeight = document.documentElement.clientHeight;

  /*---------- é–¢æ•° ----------*/
  //ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ«é‡ã«ã‚ˆã£ã¦ãƒšãƒ¼ã‚¸ãƒˆãƒƒãƒ—ãƒœã‚¿ãƒ³ã®opacityã‚’è¨­å®šã™ã‚‹é–¢æ•°
  const pageTopBtnDisplay = () =&gt; {
    let scrollY = window.scrollY;
    if (scrollY &lt; pageTopBtnDisplayY) {
      pageTopBtn.style.opacity = 0;
    } else {
      pageTopBtn.style.opacity = 1;
    }
  }

  //ãƒšãƒ¼ã‚¸ãƒˆãƒƒãƒ—ãƒœã‚¿ãƒ³ã®bottomã‚’è¨­å®šã™ã‚‹é–¢æ•°
  const pageTopBtnBottomPos = () =&gt; {
    if (documentHeight - scrollY - windowHeight &lt;= footerHeight) {
      pageTopBtn.style.bottom = footerHeight - (documentHeight - scrollY - windowHeight) + pageTopBtnStyleBottom + 'px';
    } else {
      pageTopBtn.style.bottom = pageTopBtnStyleBottom + 'px';
    }
  }

  /*---------- ãƒšãƒ¼ã‚¸ã‚’è¡¨ç¤ºã—ãŸæ™‚ç‚¹ã§å®Ÿè¡Œ ----------*/
  pageTopBtnDisplay();

  /*---------- ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ«ã‚¤ãƒ™ãƒ³ãƒˆ ----------*/
  window.addEventListener('scroll', () =&gt; {
    //ãƒšãƒ¼ã‚¸ã®ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ«é‡
    pageTopBtnDisplay();
    pageTopBtnBottomPos();

  }, false);
}
/*---------- é–¢æ•°å®Ÿè¡Œ ----------*/
pageTopBtnPositionSet();

/*---------- ãƒªã‚µã‚¤ã‚ºã—ãŸæ™‚ã«å®Ÿè¡Œ ----------*/
window.onresize = () =&gt; {
  pageTopBtnPositionSet();
}


/*-------------------------------
  è¦ç´&nbsp;ã‚’ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã—ãªãŒã‚‰è¡¨ç¤º
-------------------------------*/
window.sr = ScrollReveal();
sr.reveal('.lowerContent section');
sr.reveal('.lowerContent div');
sr.reveal('.lowerContent article');
sr.reveal('.lowerContent li');
sr.reveal('#PageTopBtn');

sr.reveal('.topContent section');
sr.reveal('.topContent div');
sr.reveal('.topContent article');
sr.reveal('.topContent li');

/*-------------------------------
  blogã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ãƒªãƒ³ã‚¯ã®ã‚¢ã‚³ãƒ¼ãƒ‡ã‚£ã‚ªãƒ³ãƒ¡ãƒ‹ãƒ¥ãƒ¼
-------------------------------*/
function Accordion(obj) {

  // `wrap_id`ã§æŒ‡å®šã—ãŸè¦ç´&nbsp;ãŒç„¡ã‹ã£ãŸã‚‰ã€ä»¥é™ã¯å®Ÿè¡Œã—ãªã„
  if (!document.querySelector(`#${obj.wrap_id}`)) {
    return false
  }

  // é–¢æ•°å‘¼ã³å‡ºã—æ™‚ã®å¼•æ•°ã‚’ã‚‚ã¨ã«å¤‰æ•°ã‚’å®šç¾©
  const ElmItems = document.querySelectorAll(`#${obj.wrap_id} .${obj.item_class}`)
  const ClassAccordionElm = obj.accordion_class
  const ElmAccordions = document.querySelectorAll(`#${obj.wrap_id} .${ClassAccordionElm}`)
  const Transition = obj.accordion_transition ? obj.accordion_transition : '.4s'
  const AttrToggle = obj.toggle_attr ? obj.toggle_attr : 'data-active'
  const DefaultOpen = obj.default_is_open ? obj.default_is_open : false
  let arryAccordionElmHeight = new Array()

  // ã‚¢ã‚³ãƒ¼ãƒ‡ã‚£ã‚ªãƒ³ã•ã›ã‚‹è¦ç´&nbsp;ã®é«˜ã•ã‚’ãã‚Œãã‚Œå–å¾—ã—ã¦é…åˆ—ã«æ&nbsp;¼ç´
  // ãã®å¾Œã€`default_is_open`ãŒ`false`ãªã‚‰é«˜ã•ã‚’0ã«ã™ã‚‹
  Array.from(ElmAccordions).forEach(element =&gt; {
    element.style.height = 'auto'
    element.style.overflow = 'hidden'
    element.style.transition = Transition
    arryAccordionElmHeight.push(element.clientHeight)
    if (!DefaultOpen) {
      element.style.height = '0'
    }
  })

  Array.from(ElmItems).forEach((element, index) =&gt; {
    // `default_is_open`ãŒ`true`ãªã‚‰ã€
    //     `item_class`ã«ã‚¢ã‚³ãƒ¼ãƒ‡ã‚£ã‚ªãƒ³ãŒé–‹ã„ã¦ã„ã‚‹æ™‚ã«ä»˜ä¸Žã™ã‚‹`toggle_attr`ã®å±žæ€§ã‚’è¨­å®šã™ã‚‹
    //     ï¼ˆã‚¢ã‚³ãƒ¼ãƒ‡ã‚£ã‚ªãƒ³ãŒé–‰ã˜ã¦ã„ã‚‹æ™‚ã¯ã€`toggle_attr`ã®å±žæ€§ã¯å‰Šé™¤ã•ã‚Œã‚‹ï¼‰
    //     ã‚¢ã‚³ãƒ¼ãƒ‡ã‚£ã‚ªãƒ³ã™ã‚‹è¦ç´&nbsp;ã«`height`ã‚’è¨­å®šã™ã‚‹ï¼ˆautoã‹ã‚‰0ã«ã™ã‚‹ã¨`transition`ã‚’è¨­å®šã—ã¦ã‚‚ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã—ãªã„ã‹ã‚‰ã€`height`ã‚’æ•°å€¤ã§è¨­å®šã™ã‚‹ï¼‰
    if (DefaultOpen) {
      element.setAttribute(AttrToggle, '')
      ElmAccordions[index].style.height = `${arryAccordionElmHeight[index]}px`
    }

    // `item_class`ã«`addEventListener`ã‚’è¨­å®š
    element.addEventListener('click', (event) =&gt; {

      // ã‚¯ãƒªãƒƒã‚¯æ™‚ã®è¦ç´&nbsp;ã¨å±žæ€§ã®æœ‰ç„¡ã‚’å–å¾—
      // ï¼ˆã‚¯ãƒªãƒƒã‚¯æ™‚ã«`toggle_attr`ã®å±žæ€§ã‚’ä»˜ã‘å¤–ã—ã™ã‚‹ã“ã¨ã§ã€ã‚¢ã‚³ãƒ¼ãƒ‡ã‚£ã‚ªãƒ³ãŒé–‹ã„ã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’åˆ¤åˆ¥ã™ã‚‹ï¼‰
      let target = event.currentTarget
      let hasAttr = target.hasAttribute(AttrToggle)
      let elmAccordion

      // ã‚¢ã‚³ãƒ¼ãƒ‡ã‚£ã‚ªãƒ³ã™ã‚‹è¦ç´&nbsp;ã‚’å–å¾—ã—ã¦ã€`elmAccordion`ã«æ&nbsp;¼ç´
      target.childNodes.forEach(childItem =&gt; {
        if (childItem.className == ClassAccordionElm) {
          elmAccordion = childItem
        }
      })

      // `toggle_attr`ã®å±žæ€§ã®æœ‰ç„¡ã§ã‚¢ã‚³ãƒ¼ãƒ‡ã‚£ã‚ªãƒ³ã‚’ã€Œé–‹ãã€ã‹ã€Œé–‰ã˜ã‚‹ã€ã‹ã€ã©ã¡ã‚‰ã‹ã®å‡¦ç†ã‚’å®Ÿè¡Œ
      if (hasAttr) {
        target.removeAttribute(AttrToggle)
        elmAccordion.style.height = '0'
      } else {
        target.setAttribute(AttrToggle, '')
        elmAccordion.style.height = `${arryAccordionElmHeight[index]}px`
      }

    }) // / addEventListener
  }) // / forEach

}

// ã“ã“ã§é–¢æ•°ã‚’å‘¼ã³å‡ºã—
Accordion({
  wrap_id: 'first-accordion',
  item_class: 'p-accordion__item',
  accordion_class: 'p-accordion__content',
  accordion_transition: '.4s',
  toggle_attr: 'data-active',
  default_is_open: false,
})</pre></body></html>