This commit is contained in:
ken 2026-07-09 17:35:46 +08:00
parent 0cae5b537c
commit 95da13e404
13 changed files with 149 additions and 41 deletions

View File

@ -307,7 +307,13 @@
$('.mobile-menu').toggleClass('active'); $('.mobile-menu').toggleClass('active');
$('body').toggleClass('noscroll'); $('body').toggleClass('noscroll');
$('.mobile-menu .navbar-toggle').removeClass('collapsed');
// ★ 修正:依據 active 狀態決定 collapsed 的加/移除
if ($('.mobile-menu').hasClass('active')) {
$('.mobile-menu .navbar-toggle').removeClass('collapsed'); // 打開 → 叉叉
} else {
$('.mobile-menu .navbar-toggle').addClass('collapsed'); // 關閉 → 三條橫線
}
// 關閉所有下拉選單 // 關閉所有下拉選單
$('.mobile-menu1 > ul, .mobile-menu2 > ul').slideUp(500); $('.mobile-menu1 > ul, .mobile-menu2 > ul').slideUp(500);
@ -321,6 +327,34 @@
} }
}); });
// ✅ Tab 鍵跳過 .mobile-menu 時,觸發收合邏輯
$(document).on('focusout', '.mobile-menu', function(e) {
setTimeout(function() {
var $newFocus = $(document.activeElement);
// 焦點在 body 時代表滑鼠正在點擊中,不處理
if ($newFocus.is('body')) return;
if ($('.mobile-menu').hasClass('active') && $newFocus.closest('.mobile-menu').length === 0) {
var $btn = $('.navbar-toggle').first();
if ($btn.attr('data-bs-toggle')) {
var target = $btn.attr('data-bs-target');
var bsCollapse = window.bootstrap && bootstrap.Collapse.getInstance($(target)[0]);
if (bsCollapse) bsCollapse.hide();
$('.mobile-menu').removeClass('active');
$('body').removeClass('noscroll');
$('.mobile-menu .navbar-toggle').addClass('collapsed');
$('.mobile-menu1 > ul, .mobile-menu2 > ul').slideUp(500);
$('.mobile-menu1 > .menu-drop, .mobile-menu2 > .menu-drop').removeClass('opened');
} else {
$btn.trigger('click');
}
}
}, 50);
});
$('.mobile-menu1 > .menu-drop').click(function(){ $('.mobile-menu1 > .menu-drop').click(function(){
var $that = $(this); var $that = $(this);
var opencheck1 = $that.hasClass('opened'); var opencheck1 = $that.hasClass('opened');
@ -619,7 +653,7 @@
} }
}); });
if (document.documentElement.lang === 'zh_tw') { if (document.documentElement.lang === 'zh_tw') {
document.documentElement.lang = 'zh-Hant'; document.documentElement.lang = 'zh-Hant-TW';
} }
//tab鍵按下 //tab鍵按下
$(document).on('keydown', function(e) { $(document).on('keydown', function(e) {
@ -732,20 +766,20 @@
$(this).attr("style", newStyle); $(this).attr("style", newStyle);
} }
}); });
//表格scope // //表格scope
$("table").each(function() { // $("table").each(function() {
$(this).find("tr").each(function(rowIndex) { // $(this).find("tr").each(function(rowIndex) {
$(this).find("th").each(function(colIndex) { // $(this).find("th").each(function(colIndex) {
if (rowIndex === 0) { // if (rowIndex === 0) {
// 第一列的 th適用於該欄 // // 第一列的 th適用於該欄
$(this).attr("scope", "col"); // $(this).attr("scope", "col");
} else if (colIndex === 0) { // } else if (colIndex === 0) {
// 其他列的第一個 th適用於該行 // // 其他列的第一個 th適用於該行
$(this).attr("scope", "row"); // $(this).attr("scope", "row");
} // }
}); // });
}); // });
}); // });
$(".banner-pager button").addClass('banner-pagerbtn'); $(".banner-pager button").addClass('banner-pagerbtn');
$(".banner-pager button").attr("type","button"); $(".banner-pager button").attr("type","button");
$(".banner-pager button").append('<span style="display: none;">下一張</span>'); $(".banner-pager button").append('<span style="display: none;">下一張</span>');
@ -941,7 +975,7 @@ $(function() {
var urlParams = new URLSearchParams(window.location.search); var urlParams = new URLSearchParams(window.location.search);
var isEditMode = urlParams.get('editmode') === 'on'; var isEditMode = urlParams.get('editmode') === 'on';
var pageLang = $('html').attr('lang') || 'zh-Hant'; var pageLang = $('html').attr('lang') || 'zh-Hant-TW';
var isEn = pageLang.toLowerCase().startsWith('en'); var isEn = pageLang.toLowerCase().startsWith('en');
var i18n = { var i18n = {
@ -1030,8 +1064,7 @@ $(function() {
currentTitle.includes('Open in new window') || currentTitle.includes('Open in new window') ||
currentTitle.includes('/uploads/'); currentTitle.includes('/uploads/');
// 修正後:只有在沒有原始 title 時才清空 if (currentTitle.startsWith('/') || currentTitle.includes('?')) {
if (!hasOriginalTitle && (currentTitle.startsWith('/') || currentTitle.includes('?'))) {
currentTitle = ""; currentTitle = "";
} }
@ -2775,6 +2808,63 @@ $(document).ready(function() {
// 執行 function // 執行 function
updatePaginationText(); updatePaginationText();
}); });
//post
$(document).ready(function () {
setTimeout(function () {
$('iframe.twitter-share-button, iframe.twitter-tweet-button').each(function () {
$(this).attr('title', '分享至 X 在新視窗開啟');
});
}, 1500);
});
$(function() {
function bindIframeFocus() {
var $iframe = $('.twitter-share-button');
if ($iframe.length === 0) return;
$iframe.each(function() {
var $wrap = $(this).closest('.tw-share-button');
// 讓外層可以被 tab 到並顯示焦點框
$wrap.attr('tabindex', '-1');
$(window).on('blur.twitterFocus', function() {
setTimeout(function() {
if (document.activeElement &&
$(document.activeElement).hasClass('twitter-share-button')) {
$wrap.css({
'outline': '3px solid #005fcc',
'outline-offset': '2px',
'border-radius': '2px'
});
}
}, 100);
});
$(window).on('focus.twitterFocus', function() {
$wrap.css({
'outline': '',
'outline-offset': ''
});
});
});
}
// 用 MutationObserver 等 iframe 被 Twitter script 插入後才綁定
var observer = new MutationObserver(function(mutations) {
if ($('.twitter-share-button').length > 0) {
bindIframeFocus();
observer.disconnect(); // 綁定成功後停止監聽
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
// 保險2秒後強制執行一次
setTimeout(bindIframeFocus, 1000);
});
//orbitbarlogo無障礙 //orbitbarlogo無障礙
$(function() { $(function() {
var $logo = $('.orbit-bar-logo'); var $logo = $('.orbit-bar-logo');
@ -2820,6 +2910,9 @@ $(function() {
var target = document.getElementById('gallery-theater-stage'); var target = document.getElementById('gallery-theater-stage');
if (!target) return; if (!target) return;
// 頁面載入時若已存在 #gallery-theater-stage則還原 z-index
$('.verticalhome').css('z-index', 'auto');
var observer = new MutationObserver(function() { var observer = new MutationObserver(function() {
var display = target.style.display; var display = target.style.display;
if (display === 'block') { if (display === 'block') {

View File

@ -3,13 +3,16 @@
@import "../initial"; @import "../initial";
@import "variables"; @import "variables";
.fa-classic, .fa-regular, .fa-solid, .far, .fas ,.fa{ .fa-classic, .fa-regular, .fa-solid, .far, .fas ,.fa{
font-family: var(--fa-style-family, "FontAwesome"); font-family: "FontAwesome";
} }
#orbit-bar .orbit-bar-inner > label:focus, #orbit-bar .orbit-bar-inner > label.focus{ #orbit-bar .orbit-bar-inner > label:focus, #orbit-bar .orbit-bar-inner > label.focus{
.orbit-bar-search-sign-language{ .orbit-bar-search-sign-language{
display: block display: block
} }
} }
#orbit-bar .orbit-bar-menu .orbit-bar-logo{
cursor: unset!important;
}
.login-btn:focus { .login-btn:focus {
outline: 0.3125em auto -webkit-focus-ring-color !important; outline: 0.3125em auto -webkit-focus-ring-color !important;

View File

@ -4,6 +4,11 @@
#main-content { #main-content {
font-size: 1.2em; font-size: 1.2em;
} }
.line-it-button{
.label{
color: #333!important;
}
}
.col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-xs-1, .col-xs-10, .col-xs-11, .col-xs-12, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9{ .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-xs-1, .col-xs-10, .col-xs-11, .col-xs-12, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9{
@media(max-width: $screen-xs){ @media(max-width: $screen-xs){
padding: 0; padding: 0;

View File

@ -30,10 +30,13 @@ ul.button-mid{
} }
} }
} }
ul.button-mid{ .button-mid {
margin:0; position: absolute;
z-index: 201; width: 100%;
height: 0;
top: 50%;
} }
.banner-pager .active-slide button{ .banner-pager .active-slide button{
background: $theme-color-second!important; background: $theme-color-second!important;
} }

View File

@ -29,7 +29,10 @@
</div> </div>
</div> </div>
<ul class="w-ba-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></ul> <div class="w-ad-banner__pager-2 w-ba-banner__caption banner-pager banner_caption_{{subpart-id}}" data-list="images" data-level="0">
<li><button title="Slide {{slide_number}}" aria-label="Pager"><span style="display: none;">Slide {{slide_number}}</span></button></li>
</div>
<ul class="controlplay" role="radiogroup" aria-label="播放控制選項"> <ul class="controlplay" role="radiogroup" aria-label="播放控制選項">
<a role="radio" aria-checked="true" href="javascript:;" class="resume-slide active" title="繼續播放" aria-label="繼續播放" aria-live="assertive"> <a role="radio" aria-checked="true" href="javascript:;" class="resume-slide active" title="繼續播放" aria-label="繼續播放" aria-live="assertive">
<i aria-hidden="true"></i> <i aria-hidden="true"></i>

View File

@ -6,7 +6,7 @@
<div class="index-content col-xs-4 col-sm-3"> <div class="index-content col-xs-4 col-sm-3">
<div class="index-content-inner"> <div class="index-content-inner">
<div class="index-pic"> <div class="index-pic">
<img class="img-thumbnail" src="{{thumb-src}}" alt="{{alt_title}}"> <img class="img-thumbnail" src="{{thumb-src}}" alt="{{album-name}}">
</div> </div>
<section class="index-part"> <section class="index-part">
<h4 class="index-content-title"> <h4 class="index-content-title">

View File

@ -6,7 +6,7 @@
<div class="index-content col-xs-4 col-sm-3"> <div class="index-content col-xs-4 col-sm-3">
<div class="index-content-inner"> <div class="index-content-inner">
<div class="index-pic"> <div class="index-pic">
<img class="img-thumbnail" src="{{thumb-src}}" alt="{{alt_title}}"> <img class="img-thumbnail" src="{{thumb-src}}" alt="{{album-name}}">
</div> </div>
<section class="index-part"> <section class="index-part">
<h4 class="index-content-title"> <h4 class="index-content-title">

View File

@ -4,15 +4,16 @@
</h3> </h3>
<div class="row" data-level="0" data-list="albums" style="display: flex;flex-wrap: wrap;"> <div class="row" data-level="0" data-list="albums" style="display: flex;flex-wrap: wrap;">
<div class="index-content col-sm-3"> <div class="index-content col-sm-3">
<a href="{{link_to_show}}" aria-label="前往{{page-title}}" title="{{page-title}}">
<div class="index-content-inner"> <div class="index-content-inner">
<a href="{{link_to_show}}" title="{{album-name}}">
<div class="index-pic"> <div class="index-pic">
<img class="img-thumbnail" src="{{thumb-src}}" alt="{{alt_title}}"> <img class="img-thumbnail" src="{{thumb-src}}" alt="{{album-name}}">
</div> </div>
</a> </a>
<div class="index-part"> <div class="index-part">
<h4 class="index-content-title"> <h4 class="index-content-title">
<a href="{{link_to_show}}" aria-label="前往{{page-title}}" title="{{page-title}}">{{album-name}}</a> <a href="{{link_to_show}}" title="{{album-name}}">{{album-name}}</a>
</h4> </h4>
<div class="index-img-description">{{album-description}}</div> <div class="index-img-description">{{album-description}}</div>
</div> </div>

View File

@ -5,14 +5,14 @@
<div class="row" data-level="0" data-list="albums" style="display: flex;flex-wrap: wrap;"> <div class="row" data-level="0" data-list="albums" style="display: flex;flex-wrap: wrap;">
<div class="index-content"> <div class="index-content">
<div class="index-content-inner clearfix row"> <div class="index-content-inner clearfix row">
<a href="{{link_to_show}}" aria-label="前往{{page-title}}" title="{{page-title}}"> <a href="{{link_to_show}}" aria-label="前往{{album-name}}" title="{{album-name}}">
<div class="index-pic col-xs-5 col-sm-2"> <div class="index-pic col-xs-5 col-sm-2">
<img class="index-img" src="{{thumb-src}}" alt="{{alt_title}}"> <img class="index-img" src="{{thumb-src}}" alt="{{alt_title}}">
</div> </div>
</a> </a>
<div class="index-part col-xs-7 col-sm-10"> <div class="index-part col-xs-7 col-sm-10">
<h4 class="index-content-title"> <h4 class="index-content-title">
<a href="{{link_to_show}}" aria-label="前往{{page-title}}" title="{{page-title}}">{{album-name}}</a> <a href="{{link_to_show}}" aria-label="前往{{album-name}}" title="{{album-name}}">{{album-name}}</a>
</h4> </h4>
<div class="index-img-description">{{album-description}}</div> <div class="index-img-description">{{album-description}}</div>
</div> </div>

View File

@ -4,15 +4,15 @@
</h3> </h3>
<div class="row" data-level="0" data-list="albums" style="display: flex;flex-wrap: wrap;"> <div class="row" data-level="0" data-list="albums" style="display: flex;flex-wrap: wrap;">
<div class="index-content col-sm-3"> <div class="index-content col-sm-3">
<a href="{{link_to_show}}" aria-label="前往{{page-title}}" title="{{page-title}}"> <a href="{{link_to_show}}" aria-label="前往{{album-name}}" title="{{album-name}}">
<div class="index-content-inner"> <div class="index-content-inner">
<div class="index-pic"> <div class="index-pic">
<img class="img-thumbnail" src="{{thumb-src}}" alt="{{alt_title}}"> <img class="img-thumbnail" src="{{thumb-src}}" alt="{{album-name}}">
</div> </div>
</a> </a>
<div class="index-part"> <div class="index-part">
<h4 class="index-content-title"> <h4 class="index-content-title">
<a href="{{link_to_show}}" aria-label="前往{{page-title}}" title="{{page-title}}">{{album-name}}</a> <a href="{{link_to_show}}" aria-label="前往{{album-name}}" title="{{album-name}}">{{album-name}}</a>
</h4> </h4>
</div> </div>
</div> </div>

View File

@ -5,14 +5,14 @@
<div class="row" data-level="0" data-list="albums" style="display: flex;flex-wrap: wrap;"> <div class="row" data-level="0" data-list="albums" style="display: flex;flex-wrap: wrap;">
<div class="index-content"> <div class="index-content">
<div class="index-content-inner clearfix row"> <div class="index-content-inner clearfix row">
<a href="{{link_to_show}}" aria-label="前往{{page-title}}" title="{{page-title}}"> <a href="{{link_to_show}}" aria-label="前往{{album-name}}" title="{{album-name}}">
<div class="index-pic col-xs-5 col-sm-2"> <div class="index-pic col-xs-5 col-sm-2">
<img class="index-img" src="{{thumb-src}}" alt="{{alt_title}}"> <img class="index-img" src="{{thumb-src}}" alt="{{alt_title}}">
</div> </div>
</a> </a>
<div class="index-part col-xs-7 col-sm-10"> <div class="index-part col-xs-7 col-sm-10">
<h4 class="index-content-title"> <h4 class="index-content-title">
<a href="{{link_to_show}}" aria-label="前往{{page-title}}" title="{{page-title}}">{{album-name}}</a> <a href="{{link_to_show}}" aria-label="前往{{album-name}}" title="{{album-name}}">{{album-name}}</a>
</h4> </h4>
</div> </div>

View File

@ -8,11 +8,11 @@
<div class="card-front"> <div class="card-front">
<div class="card-body" style="padding:0;"> <div class="card-body" style="padding:0;">
<a href="{{link_to_show}}" aria-label="前往{{page-title}}" title="{{page-title}}"> <a href="{{link_to_show}}" aria-label="前往{{album-name}}" title="{{album-name}}">
<img src="{{thumb-src}}"alt="{{alt_title}}"> <img src="{{thumb-src}}"alt="{{alt_title}}">
</a> </a>
<div class="card-footer"> <div class="card-footer">
<a href="{{link_to_show}}" aria-label="前往{{page-title}}" title="{{page-title}}"> <a href="{{link_to_show}}" aria-label="前往{{album-name}}" title="{{album-name}}">
<h3 class="card-title">{{album-name}}</h3> <h3 class="card-title">{{album-name}}</h3>
</a> </a>
</div> </div>

View File

@ -6,14 +6,14 @@
<div class="index-content col-sm-3"> <div class="index-content col-sm-3">
<div class="index-content-inner"> <div class="index-content-inner">
<a href="{{link_to_show}}" aria-label="前往{{page-title}}" title="{{page-title}}"> <a href="{{link_to_show}}" aria-label="前往{{album-name}}" title="{{album-name}}">
<div class="index-pic"> <div class="index-pic">
<img class="img-thumbnail" src="{{thumb-src}}" alt="{{alt_title}}"> <img class="img-thumbnail" src="{{thumb-src}}" alt="{{album-name}}">
</div> </div>
</a> </a>
<section class="index-part"> <section class="index-part">
<h4 class="index-content-title"> <h4 class="index-content-title">
<a href="{{link_to_show}}" aria-label="前往{{page-title}}" title="{{page-title}}">{{album-name}}</a> <a href="{{link_to_show}}" aria-label="前往{{album-name}}" title="{{album-name}}">{{album-name}}</a>
</h4> </h4>
</section> </section>
</div> </div>