app/template/default/Block/NOGOOD_BTN_LANG.twig line 1

Open in your IDE?
  1. <!-- ラジオボタン部分 (例) -->
  2. <div class="lang_btn__wrap">
  3.     <label>
  4.         <input type="radio" name="lang" class="btn_lang" id="jp" checked> JP
  5.     </label>
  6.     <span> / </span>
  7.     <label>
  8.         <input type="radio" name="lang" class="btn_lang" id="en"> EN
  9.     </label>
  10. </div>
  11. <script>
  12. // 言語表示を再適用する関数
  13. function applyLanguageShow() {
  14.     const checkedLang = document.querySelector('input[type="radio"].btn_lang:checked');
  15.     if (checkedLang) {
  16.         // 一旦全ての言語要素から .show を削除
  17.         document.querySelectorAll('.jp, .en').forEach(el => el.classList.remove('show'));
  18.         // 現在選択されている言語に対応する要素に .show を追加
  19.         document.querySelectorAll('.' + checkedLang.id).forEach(el => el.classList.add('show'));
  20.     }
  21. }
  22. document.addEventListener('DOMContentLoaded', function() {
  23.     // ページロード時に適用
  24.     applyLanguageShow();
  25.     // ラジオボタンの変更時に適用
  26.     document.querySelectorAll('input[type="radio"].btn_lang').forEach(btn => {
  27.         btn.addEventListener('change', function() {
  28.             applyLanguageShow();
  29.         });
  30.     });
  31.     // 例:select の変更時にも再適用する(select が更新される場合)
  32.     document.querySelectorAll('select[name="classcategory_id1"], select[name="classcategory_id2"]').forEach(sel => {
  33.         sel.addEventListener('change', function() {
  34.             // DOM更新後に少し遅延させて再適用する
  35.             setTimeout(applyLanguageShow, 100);
  36.         });
  37.     });
  38. });
  39. </script>
  40. <style>
  41. .lang_btn__wrap{
  42.     position: fixed;
  43.     right:2%;
  44.     top: 1rem;
  45.     display: flex;
  46.     align-items: center;
  47.     gap: 0.25em;
  48. }
  49. .lang_btn__wrap label{
  50.     display:block;
  51. }
  52. label:has(:checked){
  53.     font-size: 0.75em;
  54.     padding-inline: 0.125em;
  55.     color:#bbb;
  56.     text-decoration: underline;
  57. }
  58. .jp,.en{
  59. display:none !important;
  60. }
  61. .jp.show,.en.show{
  62. display:block !important;
  63. }
  64. @media (max-width:768px){
  65.     .lang_btn__wrap{
  66.         right: 5.5%;
  67.         top: 7rem;
  68.     }
  69. }
  70. </style>