diff --git a/assets/javascripts/app.js b/assets/javascripts/app.js index d87d0ea..69645f7 100644 --- a/assets/javascripts/app.js +++ b/assets/javascripts/app.js @@ -2164,27 +2164,28 @@ $(function() { }); //rucaptcha-image $(document).ready(function () { - $('.rucaptcha-image').removeAttr('onload'); - - // 檢查是否已插入過 - if (!$('#captcha_audio').length) { - const audioButton = $(` - - `); - - const audio = $(''); - - $('.rucaptcha-image').after(audioButton, audio); + // >>> 修正:先確認頁面上真的有驗證碼圖片,再往下執行,避免沒有驗證碼的頁面也發出多餘的 wav 請求 + if ($('.rucaptcha-image').length) { + $('.rucaptcha-image').removeAttr('onload'); + // 檢查是否已插入過 + if (!$('#captcha_audio').length) { + const audioButton = $(` + + `); + const audio = $(''); + $('.rucaptcha-image').after(audioButton, audio); + } } + // <<< 修正結束 }); //萬用表格searchbtn2 @@ -3299,11 +3300,15 @@ $(document).ready(function() { }); //post $(document).ready(function () { - setTimeout(function () { - $('iframe.twitter-share-button, iframe.twitter-tweet-button').each(function () { - $(this).attr('title', '分享至 X 在新視窗開啟'); - }); - }, 1500); + setTimeout(function () { + var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase(); + var isEn = pageLang.startsWith('en'); + var title = isEn ? 'Share to X Open in new window' : '分享至 X 在新視窗開啟'; + + $('iframe.twitter-share-button, iframe.twitter-tweet-button').each(function () { + $(this).attr('title', title); + }); + }, 1500); }); $(function() { function bindIframeFocus() { @@ -3786,4 +3791,88 @@ $(function() { window.location.href = newUrl; }); }); + //banner英文 + $(function() { + function fixBannerA11yByLang() { + setTimeout(function() { + var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase(); + var isEn = pageLang.startsWith('en'); + + var i18n = { + playControls: isEn ? 'Playback Controls' : '播放控制選項', + resume: isEn ? 'Play' : '繼續播放', + pause: isEn ? 'Pause' : '暫停播放', + prev: isEn ? 'Previous' : '上一張', + next: isEn ? 'Next' : '下一張', + slide: isEn ? 'Slide' : '第', + slideUnit: isEn ? '' : ' 張投影片' + }; + + $('.w-ba-banner').each(function() { + var $banner = $(this); + + // ✅ 播放控制選項 radiogroup label + $banner.find('.controlplay').attr('aria-label', i18n.playControls); + + // ✅ 繼續播放按鈕 + $banner.find('.resume-slide').attr({ + 'aria-label': i18n.resume, + 'title': i18n.resume + }); + $banner.find('.resume-slide p').text(i18n.resume); + + // ✅ 暫停播放按鈕 + $banner.find('.pause-slide').attr({ + 'aria-label': i18n.pause, + 'title': i18n.pause + }); + $banner.find('.pause-slide p').text(i18n.pause); + + // ✅ 上一張按鈕 + $banner.find('.prev-button').attr('aria-label', i18n.prev); + + // ✅ 下一張按鈕 + $banner.find('.next-button').attr('aria-label', i18n.next); + + // ✅ Pager 按鈕 + var $slides = $banner.find('.w-ba-banner__slide'); + $banner.find('.banner-pager button').each(function(index) { + var slideTitle = $slides.eq(index).data('cycle-title') || ''; + var ariaLabel = isEn + ? i18n.slide + ' ' + (index + 1) + (slideTitle ? ' ' + slideTitle : '') + : i18n.slide + (index + 1) + i18n.slideUnit + (slideTitle ? ' ' + slideTitle : ''); + $(this).attr({ + 'aria-label': ariaLabel, + 'title': ariaLabel + }); + }); + }); + + // ✅ Cycle2 初始化後也重新處理 Pager(因為 pager 是動態產生的) + $('.w-ba-banner .cycle-slideshow').on('cycle-post-initialize cycle-after', function() { + var $banner = $(this).closest('.w-ba-banner'); + var $slides = $banner.find('.w-ba-banner__slide'); + $banner.find('.banner-pager button').each(function(index) { + var slideTitle = $slides.eq(index).data('cycle-title') || ''; + var ariaLabel = isEn + ? i18n.slide + ' ' + (index + 1) + (slideTitle ? ' ' + slideTitle : '') + : i18n.slide + (index + 1) + i18n.slideUnit + (slideTitle ? ' ' + slideTitle : ''); + $(this).attr({ + 'aria-label': ariaLabel, + 'title': ariaLabel + }); + }); + }); + + }, 800); + } + + fixBannerA11yByLang(); + }); + +//ai須新增的function + + + + }(jQuery, window)); diff --git a/assets/stylesheets/template/base/_global.scss b/assets/stylesheets/template/base/_global.scss index 9c50378..340aed1 100644 --- a/assets/stylesheets/template/base/_global.scss +++ b/assets/stylesheets/template/base/_global.scss @@ -2,7 +2,110 @@ @import "../initial"; @import "variables"; +a[href="/zh_tw/sitemap"]{ + padding: 0 1em; +} +a[href="/en/sitemap"]{ + padding: 0 1em; +} +.fc-cal-date-selected-fusion { + font-size: 1em!important; +} +.nav_ul{ + padding: 0; + & > li{ + position: relative; + list-style:none; + float: left; + display: inline-block; + @media(max-width:480px){ + width: 100%; + a{ + display: block; + } + } + &:hover{ + background-color:transparent; + > a{ + text-decoration: underline; + padding: 0.7em; + } + & > ul{ + display: block; + a{ + color: #fff; + } + } + } + & > ul{ + @media(max-width:480px){ + position: relative; + box-shadow: none; + display: block; + li{ + width: 100%; + } + } + display: none; + width:-webkit-fill-available; + min-width: max-content; + box-shadow: 2px 2px 5px #00000033; + margin: 0; + transition-duration: 0.5s; + background:$theme-color-second; + position: absolute; + padding: 0; + li{ + list-style:none; + float: none!important; + a{ + color: #fff; + display: block; + padding: 0.7em; + } + &:hover{ + background-color: rgba(darken($theme-color-second, 10%), 1);; + & > ul{ + display: block; + } + } + } + } + } + +} +.orbit-bar-inner{ + .orbit-bar-menu{ + display: flex; + align-items: center; + } + + blockquote{ + color: #fff; + padding: 0; + margin: 0; + font-size: unset; + border-left: 0; + @media(min-width:769px){ + float: left; + .movelanguage{ + float: right; + } + } + &:after, &:before{ + display: none; + } + a{ + color: #fff; + text-decoration: none; + display: inline-block; + height: 40px; + padding: 0.7em; + font-size: 0.85em; + } + } +} .fa-classic, .fa-regular, .fa-solid, .far, .fas ,.fa{ font-family: var(--fa-style-family, "FontAwesome")!important; } @@ -96,7 +199,6 @@ body { margin-top: 2.5em; overflow: hidden scroll; letter-spacing: 0.5px; - background-color: #f8f9fa; } a:link, @@ -150,8 +252,8 @@ td { // } // } .w-annc_read_more{ - float: right; - margin-bottom: 1em; + float: right; + margin-bottom: 1em; font-size: 0.8125rem; -webkit-transition: all 200ms cubic-bezier(0.39, 0.5, 0.15, 1.36); -moz-transition: all 200ms cubic-bezier(0.39, 0.5, 0.15, 1.36); @@ -226,14 +328,9 @@ img { max-width: 100%; height: auto; } -// Take care of exceeding content -// body[data-module="page_content"], -// body[data-module="announcement"] { -// .layout-content { -// overflow-x: auto; -// } -// } - +input[type=checkbox]:focus { + outline: 0.3125em auto -webkit-focus-ring-color; +} table{ caption-side: top; } diff --git a/assets/stylesheets/template/base/_variables.scss b/assets/stylesheets/template/base/_variables.scss index 982052d..484dd41 100644 --- a/assets/stylesheets/template/base/_variables.scss +++ b/assets/stylesheets/template/base/_variables.scss @@ -1,8 +1,5 @@ @charset "utf-8"; @import "../../bootstrap/variables"; -@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,300;1,300&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,300;1,300&family=Barlow:wght@100;200;300&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@100&display=swap'); // Base Color $theme-green-light: #EEF7F6; $theme-gray: #8b8b8b; diff --git a/assets/stylesheets/template/layout/content.scss b/assets/stylesheets/template/layout/content.scss index 70689be..d02f25c 100644 --- a/assets/stylesheets/template/layout/content.scss +++ b/assets/stylesheets/template/layout/content.scss @@ -6,6 +6,13 @@ padding: 0; } } +.ask-question-form .form-actions input { + float: none !important; + margin-right: 1em; +} +.ask-question .form-horizontal .form-actions { + text-align: end!important; +} .verticalhome{ position: relative; width: 100%; diff --git a/assets/stylesheets/template/layout/header.scss b/assets/stylesheets/template/layout/header.scss index 0f9fb4f..8ee5e51 100644 --- a/assets/stylesheets/template/layout/header.scss +++ b/assets/stylesheets/template/layout/header.scss @@ -1,118 +1,13 @@ @charset "utf-8"; @import "../initial"; -a[href="/zh_tw/sitemap"]{ - padding: 0 1em; -} -a[href="/en/sitemap"]{ - padding: 0 1em; -} -.fc-cal-date-selected-fusion { - font-size: 1em!important; -} -.nav_ul{ - padding: 0; - & > li{ - position: relative; - list-style:none; - float: left; - display: inline-block; - @media(max-width:480px){ - width: 100%; - a{ - display: block; - } - } - &:hover{ - background-color:transparent; - > a{ - text-decoration: underline; - padding: 0.7em; - } - & > ul{ - display: block; - a{ - color: #fff; - } - } - } - & > ul{ - @media(max-width:480px){ - position: relative; - box-shadow: none; - display: block; - li{ - width: 100%; - } - } - display: none; - width:-webkit-fill-available; - min-width: max-content; - box-shadow: 2px 2px 5px #00000033; - margin: 0; - transition-duration: 0.5s; - background:$theme-color-second; - position: absolute; - padding: 0; - li{ - list-style:none; - float: none!important; - a{ - color: #fff; - display: block; - padding: 0.7em; - } - &:hover{ - background-color: rgba(darken($theme-color-second, 10%), 1);; - & > ul{ - display: block; - } - } - } - } - } - -} -.orbit-bar-inner{ - .orbit-bar-menu{ - display: flex; - align-items: center; - } - - blockquote{ - color: #fff; - padding: 0; - margin: 0; - font-size: unset; - border-left: 0; - @media(min-width:769px){ - float: left; - .movelanguage{ - float: right; - } - } - &:after, &:before{ - display: none; - } - a{ - color: #fff; - text-decoration: none; - display: inline-block; - height: 40px; - padding: 0.7em; - font-size: 0.85em; - } - } -} .outdropdowns{ position: relative; z-index: 1; padding: 0.5em 0; } .header-nav { - // display: flex !important; - // flex-wrap: wrap; ul{ padding: 0; } @@ -126,9 +21,6 @@ a[href="/en/sitemap"]{ } } } -} -.dropdowns{ - } .accessibility_mode a:focus{ outline: 0.1em solid !important; @@ -203,9 +95,9 @@ a[href="/en/sitemap"]{ position: relative; padding: 0; margin: 0; - display: flex; - justify-content: space-between; - align-items: anchor-center; + display: flex; + justify-content: space-between; + align-items: anchor-center; // @media (max-width: $screen-sm) { // width: 100%; // display: flex; @@ -270,7 +162,6 @@ a[href="/en/sitemap"]{ } } } - .navbar-toggle { // border-radius: 0.125em; @@ -326,12 +217,6 @@ a[href="/en/sitemap"]{ .navbar-toggle{ display: block!important; } - -} -.outdropdowns{ - .dropdowns{ - - } } .nav-menu{ display:flex!important; diff --git a/assets/stylesheets/template/template.scss b/assets/stylesheets/template/template.scss index 178ed93..2e90eb6 100644 --- a/assets/stylesheets/template/template.scss +++ b/assets/stylesheets/template/template.scss @@ -21,11 +21,55 @@ //RWD @import "RWD"; - .list-unstyled::after { - content: ""; - display: table; - clear: both; - } +.w-annc_read_more{ + float: right; + margin-bottom: 1em; + font-size: 0.8125rem; + -webkit-transition: all 200ms cubic-bezier(0.39, 0.5, 0.15, 1.36); + -moz-transition: all 200ms cubic-bezier(0.39, 0.5, 0.15, 1.36); + -ms-transition: all 200ms cubic-bezier(0.39, 0.5, 0.15, 1.36); + -o-transition: all 200ms cubic-bezier(0.39, 0.5, 0.15, 1.36); + transition: all 200ms cubic-bezier(0.39, 0.5, 0.15, 1.36); + background: none; + border: none; + color: $theme-color-hover; + box-shadow: $theme-color-hover 0 0px 0px 2px inset; + + &:hover { + color: #fff; + box-shadow:$theme-color-hover 0 0px 0px 40px inset; + } +} +a.btn-primary { + margin-bottom: 1em; + font-size: 0.8125rem; + -webkit-transition: all 200ms cubic-bezier(0.39, 0.5, 0.15, 1.36); + -moz-transition: all 200ms cubic-bezier(0.39, 0.5, 0.15, 1.36); + -ms-transition: all 200ms cubic-bezier(0.39, 0.5, 0.15, 1.36); + -o-transition: all 200ms cubic-bezier(0.39, 0.5, 0.15, 1.36); + transition: all 200ms cubic-bezier(0.39, 0.5, 0.15, 1.36); + background: none; + border: none; + color: $theme-color-hover; + box-shadow: $theme-color-hover 0 0px 0px 2px inset; + + &:hover { + color: #fff; + box-shadow:$theme-color-hover 0 0px 0px 40px inset; + } +} +.theadsearch2{ + .btn-primary{ + background-color:$theme-color-hover; + border-color:$theme-color-hover; + color: #fff; + } +} +.list-unstyled::after { + content: ""; + display: table; + clear: both; +} input:focus, input:hover { outline: 3px solid #14324f!important; @@ -56,13 +100,6 @@ input:hover { .container{ margin: auto; } -// .layout-content{ -// .response-container{ -// @media (min-width: 769px)and(max-width: 820px) { -// width: 768px!important; -// } -// } -// } .internalfullwidth{ @media(min-width: 1280px){ transform: translateX(calc(-50vw + 685px)); diff --git a/modules/universal_table/index3.html.erb b/modules/universal_table/index3.html.erb index 7094248..d2c8ad0 100644 --- a/modules/universal_table/index3.html.erb +++ b/modules/universal_table/index3.html.erb @@ -105,7 +105,7 @@ - +
{{title}}