JSFiddle - React, Tailwind, and code Playground

by oti ext

HTML

<div class="select">
  <select id="changeBodyClass">
    <option value="" selected disabled>bodyのクラス</option>
    <option value="home">home</option>
    <option value="vision">vision</option>
    <option value="product">product</option>
    <option value="recruit">recruit</option>
    <option value="contact">contact</option>
    <option value="company">company</option>
    <option value="">--reset--</option>
  </select>
</div>

<nav class="global-nav">
  <ol class="global-nav-list">
    <li class="global-nav-list__item">
      <a href="/" class="global-nav-link is-home">ほーむ</a>
    </li>
    <li class="global-nav-list__item">
      <a href="/vision/" class="global-nav-link is-vision">びじょん</a>
    </li>
    <li class="global-nav-list__item">
      <a href="/product/" class="global-nav-link is-product">せいひん</a>
    </li>
    <li class="global-nav-list__item">
      <a href="/recruit/" class="global-nav-link is-recruit">さいよう</a>
    </li>
    <li class="global-nav-list__item">
      <a href="/contact/" class="global-nav-link is-contact">おといあわせ</a>
    </li>
    <li class="global-nav-list__item">
      <a href="/company/" class="global-nav-link is-company">わがしゃ</a>
    </li>
  </ol>
</nav>

CSS

/* 見た目わかりやすく */body{font-size:32px}a:hover {color: tomato} a:hover:after {content: ':"' attr(href) '"'}
/* bodyクラス付け替え用 */.select{margin-bottom: 15px}

/*
bodyにつけたクラスと対応するナビの
マウスイベントを無効にする
*/
.home .is-home,
.vision .is-vision,
.product .is-product,
.recruit .is-recruit,
.contact .is-contact,
.company .is-company {
  pointer-events: none;
}

JavaScript

var body = document.querySelector('body');
var select = document.querySelector('#changeBodyClass');
select.addEventListener('change', function(){
  body.className = '';
  body.classList.add(this.value);
}, false);