update
This commit is contained in:
parent
22ce818897
commit
48c3770079
|
|
@ -313,7 +313,13 @@ $(document).ready(function() {
|
|||
|
||||
$('.mobile-menu').toggleClass('active');
|
||||
$('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);
|
||||
|
|
@ -327,6 +333,34 @@ $(document).ready(function() {
|
|||
}
|
||||
});
|
||||
|
||||
// ✅ 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(){
|
||||
var $that = $(this);
|
||||
var opencheck1 = $that.hasClass('opened');
|
||||
|
|
@ -625,7 +659,7 @@ $(document).ready(function() {
|
|||
}
|
||||
});
|
||||
if (document.documentElement.lang === 'zh_tw') {
|
||||
document.documentElement.lang = 'zh-Hant';
|
||||
document.documentElement.lang = 'zh-Hant-TW';
|
||||
}
|
||||
//tab鍵按下
|
||||
$(document).on('keydown', function(e) {
|
||||
|
|
@ -738,20 +772,20 @@ $(document).ready(function() {
|
|||
$(this).attr("style", newStyle);
|
||||
}
|
||||
});
|
||||
//表格scope
|
||||
$("table").each(function() {
|
||||
$(this).find("tr").each(function(rowIndex) {
|
||||
$(this).find("th").each(function(colIndex) {
|
||||
if (rowIndex === 0) {
|
||||
// 第一列的 th,適用於該欄
|
||||
$(this).attr("scope", "col");
|
||||
} else if (colIndex === 0) {
|
||||
// 其他列的第一個 th,適用於該行
|
||||
$(this).attr("scope", "row");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
// //表格scope
|
||||
// $("table").each(function() {
|
||||
// $(this).find("tr").each(function(rowIndex) {
|
||||
// $(this).find("th").each(function(colIndex) {
|
||||
// if (rowIndex === 0) {
|
||||
// // 第一列的 th,適用於該欄
|
||||
// $(this).attr("scope", "col");
|
||||
// } else if (colIndex === 0) {
|
||||
// // 其他列的第一個 th,適用於該行
|
||||
// $(this).attr("scope", "row");
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
// });
|
||||
$(".banner-pager button").addClass('banner-pagerbtn');
|
||||
$(".banner-pager button").attr("type","button");
|
||||
$(".banner-pager button").append('<span style="display: none;">下一張</span>');
|
||||
|
|
@ -871,7 +905,7 @@ $(document).ready(function() {
|
|||
var isLinkImage = $parentA.length > 0 && $parentA.text().replace(/\u00a0/g, '').trim() === "";
|
||||
|
||||
// --- 1. 處理「裝飾性圖片」標註 ---
|
||||
if (currentAlt === "announcement image" || currentAlt === "裝飾圖片" || currentTitle === "裝飾圖片") {
|
||||
if (currentAlt === "announcement image" || currentAlt === "裝飾圖片" || currentTitle === "裝飾圖片" || currentAlt === "這是一張圖片" || currentTitle === "這是一張圖片"||currentAlt === "This is a image" ||currentTitle === "This is a image"){
|
||||
$img.attr('alt', '');
|
||||
$img.removeAttr('title');
|
||||
return;
|
||||
|
|
@ -947,7 +981,7 @@ $(function() {
|
|||
var urlParams = new URLSearchParams(window.location.search);
|
||||
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 i18n = {
|
||||
|
|
@ -1073,56 +1107,59 @@ $(function() {
|
|||
}
|
||||
}
|
||||
|
||||
// E. 重新計算標題 (關鍵邏輯:若 hasOriginalTitle 為真,則不進入此區塊)
|
||||
if (!hasOriginalTitle) {
|
||||
if (linkText === "" && $img.length > 0) {
|
||||
var rawAlt = ($img.attr('alt') || '').trim();
|
||||
var forbidden = ['這是一張圖片', '圖片', 'image', 'photo', '圖', ''];
|
||||
var imgAlt = forbidden.some(function(txt) { return rawAlt.toLowerCase() === txt; })
|
||||
? ($a.attr('aria-label') || i18n.link) : rawAlt;
|
||||
|
||||
var fileInfo = fileExt ? '[' + fileExt.toUpperCase() + '] ' : '';
|
||||
$a.attr('title', (fileInfo + imgAlt + " " + windowTask).trim());
|
||||
$img.attr('alt', imgAlt);
|
||||
}
|
||||
else if (linkText !== "") {
|
||||
if (fileExt !== "" || hasBadSymbol || currentTitle === "" || currentTitle.includes('/uploads/')) {
|
||||
if (fileExt !== "") {
|
||||
$a.attr('title', linkText + " ." + fileExt + " " + windowTask);
|
||||
} else {
|
||||
$a.attr('title', windowTask);
|
||||
}
|
||||
// E. 重新計算標題 (關鍵邏輯:若 hasOriginalTitle 為真,則不進入此區塊)
|
||||
if (!hasOriginalTitle) {
|
||||
if (linkText === "" && $img.length > 0) {
|
||||
var rawAlt = ($img.attr('alt') || '').trim();
|
||||
var forbidden = ['這是一張圖片', '圖片', 'image', 'photo', '圖', ''];
|
||||
var imgAlt = forbidden.some(function(txt) { return rawAlt.toLowerCase() === txt; })
|
||||
? ($a.attr('aria-label') || i18n.link) : rawAlt;
|
||||
|
||||
var fileInfo = fileExt ? '[' + fileExt.toUpperCase() + '] ' : '';
|
||||
$a.attr('title', (fileInfo + imgAlt + " " + windowTask).trim());
|
||||
$img.attr('alt', imgAlt);
|
||||
}
|
||||
else if (linkText !== "") {
|
||||
if (fileExt !== "" || hasBadSymbol || currentTitle === "" || currentTitle.includes('/uploads/')) {
|
||||
if (fileExt !== "") {
|
||||
$a.attr('title', linkText + " ." + fileExt + " " + windowTask);
|
||||
} else {
|
||||
$a.attr('title', windowTask);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ✅ 符合 HM1240404E:title 不應與連結文字或圖片 alt 重複
|
||||
if (hasOriginalTitle && currentTitle !== "") {
|
||||
var titleWithoutWindow = currentTitle
|
||||
.replace('(在本視窗開啟)', '')
|
||||
.replace('(在新視窗開啟)', '')
|
||||
.replace('Open in this window', '')
|
||||
.replace('Open in new window', '')
|
||||
.replace('另開新視窗前往', '')
|
||||
.replace('另開新視窗', '')
|
||||
.trim();
|
||||
// ✅ 符合 HM1240404E:title 不應與連結文字或圖片 alt 重複
|
||||
if (hasOriginalTitle && currentTitle !== "") {
|
||||
var titleWithoutWindow = currentTitle
|
||||
.replace('(在本視窗開啟)', '')
|
||||
.replace('(在新視窗開啟)', '')
|
||||
.replace('Open in this window', '')
|
||||
.replace('Open in new window', '')
|
||||
.replace('另開新視窗前往', '')
|
||||
.replace('另開新視窗', '')
|
||||
.trim();
|
||||
|
||||
// ✅ title 去掉開窗字串後,若與連結文字或圖片原始 alt 相同,則只保留開窗提示
|
||||
if (
|
||||
(titleWithoutWindow === linkText && linkText !== i18n.link) ||
|
||||
(imgAltOriginal !== '' && titleWithoutWindow === imgAltOriginal)
|
||||
) {
|
||||
$a.attr('title', windowTask);
|
||||
}
|
||||
|
||||
// ✅ 最終清理:若 title 出現空括號 () 則移除並補上正確開窗提示
|
||||
var finalTitle = ($a.attr('title') || '').trim();
|
||||
if (finalTitle.includes('()')) {
|
||||
finalTitle = finalTitle.replace(/\(\)/g, '').trim();
|
||||
$a.attr('title', finalTitle + ' ' + windowTask);
|
||||
}
|
||||
// ✅ title 去掉開窗字串後,若與連結文字或圖片原始 alt 相同,則只保留開窗提示
|
||||
// ✅ 新增:若 linkText 包含副檔名且 title 也是同樣檔名,也只保留開窗提示
|
||||
if (
|
||||
(titleWithoutWindow === linkText && linkText !== i18n.link) ||
|
||||
(imgAltOriginal !== '' && titleWithoutWindow === imgAltOriginal) ||
|
||||
(fileExt !== '' && linkText.toLowerCase().endsWith('.' + fileExt) && titleWithoutWindow === linkText)
|
||||
) {
|
||||
$a.attr('title', windowTask);
|
||||
return; // ✅ 加上 return,避免繼續執行後面的清理邏輯造成二次污染
|
||||
}
|
||||
|
||||
// ✅ 最終清理:若 title 出現空括號 () 則移除並補上正確開窗提示
|
||||
var finalTitle = ($a.attr('title') || '').trim();
|
||||
if (finalTitle.includes('()')) {
|
||||
finalTitle = finalTitle.replace(/\(\)/g, '').trim();
|
||||
$a.attr('title', finalTitle + ' ' + windowTask);
|
||||
}
|
||||
}
|
||||
|
||||
// F. 最終清理:移除冗餘 label,避免螢幕閱讀器唸兩次
|
||||
$a.removeAttr('aria-label');
|
||||
});
|
||||
|
|
@ -1156,6 +1193,47 @@ $(function() {
|
|||
fixAccessibilityAll();
|
||||
}, 800);
|
||||
});
|
||||
// 修正漢堡選單按鈕無障礙
|
||||
$(function() {
|
||||
function fixNavbarToggleA11y() {
|
||||
var isEn = $('html').attr('lang') === 'en';
|
||||
var label = isEn ? '開啟或關閉導覽選單' : '開啟或關閉導覽選單';
|
||||
|
||||
$('.navbar-toggle').each(function() {
|
||||
var $btn = $(this);
|
||||
|
||||
// 修正 title
|
||||
$btn.attr('title', label);
|
||||
|
||||
// 修正 sr-only 文字(原本是 "Toggle navigation")
|
||||
var $sr = $btn.find('.sr-only');
|
||||
if ($sr.length) {
|
||||
$sr.text(label);
|
||||
} else {
|
||||
$btn.prepend('<span class="sr-only">' + label + '</span>');
|
||||
}
|
||||
|
||||
// 補上 aria-label
|
||||
$btn.attr('aria-label', label);
|
||||
|
||||
// 補上 aria-expanded(依據目前是否展開)
|
||||
if (!$btn.attr('aria-expanded')) {
|
||||
var isExpanded = !$btn.hasClass('collapsed');
|
||||
$btn.attr('aria-expanded', isExpanded ? 'true' : 'false');
|
||||
}
|
||||
|
||||
// 點擊時同步更新 aria-expanded
|
||||
$btn.off('click.navA11y').on('click.navA11y', function() {
|
||||
setTimeout(function() {
|
||||
var isExpanded = !$('.navbar-toggle').hasClass('collapsed');
|
||||
$('.navbar-toggle').attr('aria-expanded', isExpanded ? 'true' : 'false');
|
||||
}, 50);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
setTimeout(fixNavbarToggleA11y, 500);
|
||||
});
|
||||
|
||||
|
||||
$(function() {
|
||||
|
|
@ -1836,36 +1914,6 @@ $(function() {
|
|||
});
|
||||
};
|
||||
|
||||
// //公告頁籤
|
||||
// function annc_widget_nav() {
|
||||
// $('.tab_nav').nextAll().addClass('tab_content');
|
||||
// $('.tab_content').css("display","none");
|
||||
// $('.tab_content').eq(0).css('display', 'block');
|
||||
|
||||
// var num = $('.tab_nav li').length;
|
||||
// $('.tab_content').eq(num).css('display', 'block');
|
||||
// $('.tab_content').eq(num).nextAll().css('display', 'block');
|
||||
|
||||
// $('.tab_nav li').off('click').on('click',function() {
|
||||
// $('.tab_nav li').removeClass('active');
|
||||
// $(this).addClass('active');
|
||||
// var fa = $(this).index();
|
||||
|
||||
// $('.tab_content').attr('style','');
|
||||
// $('.tab_content').css("display","none");
|
||||
// $('.tab_content').eq(fa).css('display','block');
|
||||
// var num = $('.tab_nav li').length;
|
||||
// $('.tab_content').eq(num).css('display', 'block');
|
||||
// $('.tab_content').eq(num).nextAll().css('display', 'block');
|
||||
// });
|
||||
|
||||
// var url = window.location.search;
|
||||
// if (url == "?editmode=on") {
|
||||
// $('.tab_content').css({'position': 'relative','display':'block'});
|
||||
// }
|
||||
// }
|
||||
// annc_widget_nav();
|
||||
|
||||
//切換語言停留在同一頁
|
||||
if(window.location.pathname!="/")
|
||||
$("#en").attr("href",window.location.pathname.replace("zh_tw","en"))
|
||||
|
|
@ -2915,6 +2963,129 @@ $(document).ready(function () {
|
|||
}
|
||||
});
|
||||
});
|
||||
//cycle2無障礙
|
||||
$(document).ready(function() {
|
||||
// 取得頁面上所有的 Cycle2 輪播圖
|
||||
var $allSlideshows = $('.cycle-slideshow');
|
||||
|
||||
/**
|
||||
* 核心無障礙狀態刷新函式
|
||||
*/
|
||||
function refreshCycleA11y($el) {
|
||||
var $items = $el.find('.w-annc__item, .widget-link__item, [class*="cycle-slide"], .widget-pic');
|
||||
|
||||
$items.each(function() {
|
||||
var $slide = $(this);
|
||||
var isActive = $slide.hasClass('cycle-slide-active');
|
||||
|
||||
if (isActive) {
|
||||
// ✅ li 只設 aria-hidden,不加 tabindex
|
||||
$slide.attr('aria-hidden', 'false');
|
||||
$slide.removeAttr('tabindex'); // ← 確保 li 本身沒有 tabindex
|
||||
$slide.find('a, button, input, [tabindex]').attr('tabindex', '0');
|
||||
} else {
|
||||
// 隱藏中的投影片:徹底隔離
|
||||
$slide.attr('aria-hidden', 'true');
|
||||
$slide.removeAttr('tabindex');
|
||||
$slide.find('a, button, input, [tabindex]').attr('tabindex', '-1');
|
||||
}
|
||||
});
|
||||
|
||||
// --- 防鎖死邊界處理 (Shift + Tab) ---
|
||||
var $container = $el.closest('.w-annc, .widget-link_wrapper, .widget-link');
|
||||
var $prevBtn = $container.find('.btn-left, .prev-button');
|
||||
|
||||
$el.find('.cycle-slide-active a, .cycle-slide-active button').first()
|
||||
.off('keydown.a11y').on('keydown.a11y', function(e) {
|
||||
if (e.keyCode === 9 && e.shiftKey) {
|
||||
if ($prevBtn.length) {
|
||||
e.preventDefault();
|
||||
$prevBtn.focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 針對 widget-link 非語意化標籤 (如 i 標籤當按鈕) 的無障礙補強
|
||||
*/
|
||||
function refreshCycleA11y($el) {
|
||||
var $items = $el.find('.w-annc__item, .widget-link__item, [class*="cycle-slide"]');
|
||||
|
||||
$items.each(function() {
|
||||
var $slide = $(this);
|
||||
var isActive = $slide.hasClass('cycle-slide-active');
|
||||
|
||||
if (isActive) {
|
||||
// ✅ li 只設 aria-hidden,不加 tabindex
|
||||
$slide.attr('aria-hidden', 'false');
|
||||
$slide.removeAttr('tabindex'); // ← 確保 li 本身沒有 tabindex
|
||||
$slide.find('a, button, input, [tabindex]').attr('tabindex', '0');
|
||||
} else {
|
||||
// 隱藏中的投影片:徹底隔離
|
||||
$slide.attr('aria-hidden', 'true');
|
||||
$slide.removeAttr('tabindex');
|
||||
$slide.find('a, button, input, [tabindex]').attr('tabindex', '-1');
|
||||
}
|
||||
});
|
||||
|
||||
// --- 防鎖死邊界處理 (Shift + Tab) ---
|
||||
var $container = $el.closest('.w-annc, .widget-link_wrapper, .widget-link');
|
||||
var $prevBtn = $container.find('.btn-left, .prev-button');
|
||||
|
||||
$el.find('.cycle-slide-active a, .cycle-slide-active button').first()
|
||||
.off('keydown.a11y').on('keydown.a11y', function(e) {
|
||||
if (e.keyCode === 9 && e.shiftKey) {
|
||||
if ($prevBtn.length) {
|
||||
e.preventDefault();
|
||||
$prevBtn.focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 輔助函式:切換後更新 A11y 狀態並鎖定焦點
|
||||
function triggerPostUpdate($el, $activeBtn) {
|
||||
$el.one('cycle-after', function() {
|
||||
setTimeout(function() {
|
||||
refreshCycleA11y($el);
|
||||
$activeBtn.focus();
|
||||
}, 300);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 舊有按鈕事件相容與整合
|
||||
*/
|
||||
$(document).on('keydown', '.btn-right, .btn-left', function(e) {
|
||||
if (e.keyCode === 13) {
|
||||
var $btn = $(this);
|
||||
var $el = $btn.closest('.w-annc').find('.cycle-slideshow');
|
||||
triggerPostUpdate($el, $btn);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* 綁定 Cycle2 核心事件
|
||||
*/
|
||||
$allSlideshows.on('cycle-initialized cycle-after', function() {
|
||||
var $this = $(this);
|
||||
setTimeout(function() {
|
||||
refreshCycleA11y($this);
|
||||
}, 300);
|
||||
});
|
||||
|
||||
// 初始化執行
|
||||
patchWidgetLinkElements();
|
||||
|
||||
$allSlideshows.each(function() {
|
||||
var $this = $(this);
|
||||
setTimeout(function() {
|
||||
refreshCycleA11y($this);
|
||||
}, 500);
|
||||
});
|
||||
});
|
||||
//post
|
||||
$(document).ready(function () {
|
||||
setTimeout(function () {
|
||||
$('iframe.twitter-share-button, iframe.twitter-tweet-button').each(function () {
|
||||
|
|
@ -2922,6 +3093,55 @@ $(document).ready(function () {
|
|||
});
|
||||
}, 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無障礙
|
||||
$(function() {
|
||||
var $logo = $('.orbit-bar-logo');
|
||||
|
|
@ -2967,6 +3187,9 @@ $(function() {
|
|||
var target = document.getElementById('gallery-theater-stage');
|
||||
if (!target) return;
|
||||
|
||||
// 頁面載入時若已存在 #gallery-theater-stage,則還原 z-index
|
||||
$('.verticalhome').css('z-index', 'auto');
|
||||
|
||||
var observer = new MutationObserver(function() {
|
||||
var display = target.style.display;
|
||||
if (display === 'block') {
|
||||
|
|
@ -3018,6 +3241,89 @@ $(document).ready(function() {
|
|||
subtree: true
|
||||
});
|
||||
|
||||
});
|
||||
//萬用表格無障礙
|
||||
function fixSortLinkA11y() {
|
||||
$('a').filter(function () {
|
||||
return $(this).find('.universal-th-icon').length > 0;
|
||||
}).each(function () {
|
||||
var $link = $(this);
|
||||
|
||||
// === Step 1: 移除 display:none 的 span ===
|
||||
$link.find('span').each(function () {
|
||||
if ($(this).css('display') === 'none' || $(this).attr('style') && $(this).attr('style').indexOf('display: none') !== -1) {
|
||||
$(this).remove();
|
||||
}
|
||||
});
|
||||
|
||||
// === Step 2: 取得 aria-label ===
|
||||
var ariaLabel = $link.attr('aria-label') || '';
|
||||
|
||||
// 若 aria-label 空白或含未替換模板變數,從旁邊 .universal-th-text 補
|
||||
if (!ariaLabel || ariaLabel.indexOf('{{') !== -1) {
|
||||
var $th = $link.closest('th, div[class*="col-"]');
|
||||
var colName = $th.find('.universal-th-text').text().trim();
|
||||
ariaLabel = colName ? '重新排序' + colName : '排序';
|
||||
$link.attr('aria-label', ariaLabel);
|
||||
}
|
||||
|
||||
// === Step 3: 補上 title 屬性 ===
|
||||
if (!$link.attr('title')) {
|
||||
$link.attr('title', ariaLabel + '(在本視窗開啟)');
|
||||
}
|
||||
|
||||
// === Step 4: 確保圖示有 aria-hidden ===
|
||||
$link.find('.universal-th-icon').attr('aria-hidden', 'true');
|
||||
|
||||
// === Step 5: 補上 visually-hidden 連結文字 ===
|
||||
if ($link.find('.visually-hidden').length === 0) {
|
||||
$link.append('<span class="visually-hidden">' + ariaLabel + '</span>');
|
||||
}
|
||||
});
|
||||
}
|
||||
function fixSearchInputA11y() {
|
||||
$('input[type="search"], input[type="text"]').each(function () {
|
||||
var $input = $(this);
|
||||
|
||||
// 已有對應 label 就跳過
|
||||
var inputId = $input.attr('id');
|
||||
if (inputId && $('label[for="' + inputId + '"]').length) return;
|
||||
|
||||
// 已有 aria-label / aria-labelledby / title 就跳過
|
||||
if ($input.attr('aria-label') || $input.attr('aria-labelledby') || $input.attr('title')) return;
|
||||
|
||||
// 從 placeholder 取得說明文字
|
||||
var placeholder = $input.attr('placeholder') || '';
|
||||
|
||||
// 從最近的 th 或欄位標題取得欄位名稱
|
||||
var colName = '';
|
||||
var $th = $input.closest('th, div[class*="col-"]');
|
||||
if ($th.length) {
|
||||
colName = $th.find('.universal-th-text').text().trim();
|
||||
}
|
||||
|
||||
// 組合標籤文字
|
||||
var label = '';
|
||||
if (colName && placeholder) {
|
||||
label = colName + '搜尋';
|
||||
} else if (colName) {
|
||||
label = colName + '搜尋';
|
||||
} else if (placeholder) {
|
||||
label = placeholder;
|
||||
} else {
|
||||
label = '搜尋關鍵字';
|
||||
}
|
||||
|
||||
$input.attr('aria-label', label);
|
||||
$input.attr('title', label);
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
setTimeout(function () {
|
||||
fixSortLinkA11y();
|
||||
fixSearchInputA11y();
|
||||
}, 500);
|
||||
});
|
||||
// 執行 member等高計算,目前改用flexbox故mark掉 by ika 20160105
|
||||
// $(window).load(function() {
|
||||
|
|
@ -3025,5 +3331,153 @@ $(document).ready(function() {
|
|||
// ORBITFRONT.member.equalHeight('.i-member-item-inner');
|
||||
// }
|
||||
// });
|
||||
//會員tab邏輯
|
||||
$(document).ready(function () {
|
||||
setTimeout(function () {
|
||||
$('.dtr-control').removeAttr('tabindex');
|
||||
}, 500);
|
||||
});
|
||||
function fixTabKeyboardNav() {
|
||||
setTimeout(function () {
|
||||
var $tablist = $('.member-plugins[role="tablist"]');
|
||||
var $tabs = $tablist.find('a[role="tab"]');
|
||||
|
||||
// 初始化 roving tabindex 和 aria-selected
|
||||
$tabs.each(function (i) {
|
||||
var $tab = $(this);
|
||||
var isActive = $tab.closest('li').hasClass('active');
|
||||
$tab.attr({
|
||||
'tabindex': isActive ? '0' : '-1',
|
||||
'aria-selected': isActive ? 'true' : 'false'
|
||||
});
|
||||
});
|
||||
|
||||
// 方向鍵切換頁籤
|
||||
$tabs.on('keydown', function (e) {
|
||||
var $current = $(this);
|
||||
var currentIndex = $tabs.index($current);
|
||||
var $target;
|
||||
|
||||
if (e.keyCode === 39 || e.keyCode === 40) {
|
||||
// 右鍵或下鍵:下一個
|
||||
e.preventDefault();
|
||||
$target = $tabs.eq((currentIndex + 1) % $tabs.length);
|
||||
} else if (e.keyCode === 37 || e.keyCode === 38) {
|
||||
// 左鍵或上鍵:上一個
|
||||
e.preventDefault();
|
||||
$target = $tabs.eq((currentIndex - 1 + $tabs.length) % $tabs.length);
|
||||
} else if (e.keyCode === 36) {
|
||||
// Home:第一個
|
||||
e.preventDefault();
|
||||
$target = $tabs.first();
|
||||
} else if (e.keyCode === 35) {
|
||||
// End:最後一個
|
||||
e.preventDefault();
|
||||
$target = $tabs.last();
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
// 更新 roving tabindex 和 aria-selected
|
||||
$tabs.attr({ 'tabindex': '-1', 'aria-selected': 'false' });
|
||||
$target.attr({ 'tabindex': '0', 'aria-selected': 'true' });
|
||||
$target.focus().trigger('click');
|
||||
});
|
||||
|
||||
// 點擊頁籤時同步更新狀態
|
||||
$tabs.on('click', function () {
|
||||
$tabs.attr({ 'tabindex': '-1', 'aria-selected': 'false' });
|
||||
$(this).attr({ 'tabindex': '0', 'aria-selected': 'true' });
|
||||
});
|
||||
|
||||
}, 500);
|
||||
}
|
||||
$(document).ready(function () {
|
||||
fixTabKeyboardNav();
|
||||
});
|
||||
function removeBareUrlLinks() {
|
||||
setTimeout(function() {
|
||||
$('.dataTables_wrapper a').each(function() {
|
||||
var $a = $(this);
|
||||
var text = $a.text().trim();
|
||||
|
||||
if (/^https?:\/\//i.test(text)) {
|
||||
$a.replaceWith(text);
|
||||
}
|
||||
});
|
||||
}, 500);
|
||||
}
|
||||
$(document).ready(function() {
|
||||
removeBareUrlLinks();
|
||||
});
|
||||
//麵包屑無障礙
|
||||
$(document).ready(function () {
|
||||
$('.widget-breadcrumb .breadcrumb li:last-child a').attr('aria-current', 'page');
|
||||
|
||||
// 若尚未有 nav 包住,自動加上
|
||||
$('.widget-breadcrumb .breadcrumb').each(function () {
|
||||
if (!$(this).closest('nav').length) {
|
||||
$(this).wrap('<nav aria-label="麵包屑導覽"></nav>');
|
||||
}
|
||||
});
|
||||
});
|
||||
//gallery view
|
||||
function fixGalleryViewLinkA11y() {
|
||||
$('a.btn.view').each(function () {
|
||||
var $a = $(this);
|
||||
|
||||
$a.find('span').each(function () {
|
||||
var $span = $(this);
|
||||
|
||||
// 避免重複處理
|
||||
if ($span.hasClass('sr-only')) return;
|
||||
|
||||
var style = $span.attr('style') || '';
|
||||
if (style.indexOf('display: none') !== -1 || style.indexOf('display:none') !== -1) {
|
||||
$span.removeAttr('style').addClass('sr-only');
|
||||
}
|
||||
});
|
||||
|
||||
$a.find('i, svg').attr('aria-hidden', 'true');
|
||||
});
|
||||
}
|
||||
$(document).ready(function () {
|
||||
// 比 fixAccessibilityAll 的 800ms 晚,確保最後執行
|
||||
setTimeout(fixGalleryViewLinkA11y, 2000);
|
||||
});
|
||||
//會員
|
||||
$(function() {
|
||||
function fixMemberAcademicLinkA11y() {
|
||||
setTimeout(function() {
|
||||
$('.i-member-item').each(function() {
|
||||
var $item = $(this);
|
||||
|
||||
// ✅ 取得該成員的姓名
|
||||
var memberName = $item.find('.member-data-value-name a').text().trim();
|
||||
if (!memberName) return;
|
||||
|
||||
// ✅ 找到學術歷程連結,補上包含姓名的 title
|
||||
$item.find('.member-data-value-11 a').each(function() {
|
||||
var $a = $(this);
|
||||
var currentTitle = $a.attr('title') || '';
|
||||
|
||||
// ✅ 移除舊的開窗字串,組合新 title
|
||||
var titleWithoutWindow = currentTitle
|
||||
.replace('另開新視窗前往', '')
|
||||
.replace('在新視窗開啟', '')
|
||||
.replace('在本視窗開啟', '')
|
||||
.trim();
|
||||
|
||||
var isNewWindow = $a.attr('target') === '_blank';
|
||||
var windowText = isNewWindow ? ' 在新視窗開啟' : ' 在本視窗開啟';
|
||||
|
||||
$a.attr('title', memberName + ' ' + titleWithoutWindow + windowText);
|
||||
});
|
||||
});
|
||||
}, 500);
|
||||
}
|
||||
|
||||
fixMemberAcademicLinkA11y();
|
||||
});
|
||||
|
||||
}(jQuery, window));
|
||||
|
|
|
|||
|
|
@ -4,13 +4,21 @@
|
|||
@import "variables";
|
||||
|
||||
.fa-classic, .fa-regular, .fa-solid, .far, .fas ,.fa{
|
||||
font-family: var(--fa-style-family, "FontAwesome");
|
||||
font-family: "FontAwesome";
|
||||
}
|
||||
li#language-li {
|
||||
@media(max-width:767px){
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
#orbit-bar .orbit-bar-inner > label:focus, #orbit-bar .orbit-bar-inner > label.focus{
|
||||
.orbit-bar-search-sign-language{
|
||||
display: block
|
||||
}
|
||||
}
|
||||
#orbit-bar .orbit-bar-menu .orbit-bar-logo{
|
||||
cursor: unset!important;
|
||||
}
|
||||
|
||||
.login-btn:focus {
|
||||
outline: 0.3125em auto -webkit-focus-ring-color !important;
|
||||
|
|
@ -23,16 +31,16 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
label[for="open-orbit-login"] {
|
||||
@media(max-width:768px){
|
||||
display: none!important;
|
||||
}
|
||||
}
|
||||
[accesskey="U"],[accesskey="W"]{
|
||||
@media(max-width:768px){
|
||||
color: #666!important;
|
||||
}
|
||||
}
|
||||
// label[for="open-orbit-login"] {
|
||||
// @media(max-width:768px){
|
||||
// display: none!important;
|
||||
// }
|
||||
// }
|
||||
// [accesskey="U"],[accesskey="W"]{
|
||||
// @media(max-width:768px){
|
||||
// color: #666!important;
|
||||
// }
|
||||
// }
|
||||
.orbit-bar-inner{
|
||||
[accesskey="U"]{
|
||||
height: 40px;
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@ $theme-blue: #003d7e;
|
|||
$theme-color-main: #333333;
|
||||
$theme-color-second:#1b3a61;
|
||||
$theme-color-third: #1b3a61;
|
||||
$theme-color-green: #34c4ff;
|
||||
$theme-color-hover:#34c4ff;
|
||||
$theme-color-green: #01668e;
|
||||
$theme-color-hover:#01668e;
|
||||
|
||||
.fa, .fa-classic, .fa-regular, .fa-solid, .far, .fas {
|
||||
font-family: "Font Awesome 6 Free", FontAwesome;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
@charset "utf-8";
|
||||
|
||||
@import "../initial";
|
||||
.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{
|
||||
@media(max-width: $screen-xs){
|
||||
padding: 0;
|
||||
|
|
|
|||
|
|
@ -30,9 +30,11 @@ ul.button-mid{
|
|||
}
|
||||
}
|
||||
}
|
||||
ul.button-mid{
|
||||
margin:0;
|
||||
z-index: 201;
|
||||
.button-mid {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 0;
|
||||
top: 50%;
|
||||
}
|
||||
.banner-pager .active-slide button{
|
||||
background: $theme-color-second!important;
|
||||
|
|
|
|||
|
|
@ -2592,12 +2592,6 @@
|
|||
.i-annc__entry-title {
|
||||
margin-bottom: 0;
|
||||
margin-top: 0;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
// clear: both;
|
||||
}
|
||||
|
||||
.i-annc__title {
|
||||
|
|
@ -2605,6 +2599,11 @@
|
|||
color: $theme-color-main;
|
||||
text-decoration: none;
|
||||
@extend .i-title;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
&:hover {
|
||||
color: $theme-color-second;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -144,18 +144,18 @@
|
|||
.i-archive-title {
|
||||
@extend .unity-title;
|
||||
}
|
||||
.link { background-color: #1368d4 !important; } /* 對比 4.6:1 */
|
||||
.txt { background-color: #3a8a40 !important; } /* 對比 4.6:1 */
|
||||
.xlsx { background-color: #9e3050 !important; } /* 對比 4.6:1 */
|
||||
.pdf { background-color: #2a7d36 !important; } /* 對比 4.6:1 */
|
||||
.docx { background-color: #5e46a0 !important; } /* 對比 4.6:1 */
|
||||
.doc { background-color: #1368d4 !important; } /* 對比 4.6:1 */
|
||||
.pptx { background-color: #3d4aa0 !important; } /* 對比 4.6:1 */
|
||||
.jpg { background-color: #8f3333 !important; } /* 對比 4.6:1 */
|
||||
.zip { background-color: #8a6400 !important; } /* 對比 4.6:1 */
|
||||
.rar { background-color: #9e5000 !important; } /* 對比 4.6:1 */
|
||||
.xls { background-color: #3a8a40 !important; } /* 對比 4.6:1 */
|
||||
.odt { background-color: #767676 !important; } /* 對比 4.6:1 */
|
||||
.link { background-color: #1368d4 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
|
||||
.txt { background-color: #2a7e31 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
|
||||
.xlsx { background-color: #9e3050 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
|
||||
.pdf { background-color: #2a7d36 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
|
||||
.docx { background-color: #5e46a0 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
|
||||
.doc { background-color: #1368d4 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
|
||||
.pptx { background-color: #3d4aa0 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
|
||||
.jpg { background-color: #8f3333 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
|
||||
.zip { background-color: #8a6400 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
|
||||
.rar { background-color: #9e5000 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
|
||||
.xls { background-color: #2a7e31 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
|
||||
.odt { background-color: #767676 !important; margin-left: 0.5em; } /* 對比 4.6:1 */
|
||||
.table>caption+thead>tr:first-child>td, .table>caption+thead>tr:first-child>th, .table>colgroup+thead>tr:first-child>td, .table>colgroup+thead>tr:first-child>th, .table>thead:first-child>tr:first-child>td, .table>thead:first-child>tr:first-child>th{
|
||||
// border-top: 0.0625em solid #ddd;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,9 @@
|
|||
|
||||
</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="播放控制選項">
|
||||
<a role="radio" aria-checked="true" href="javascript:;" class="resume-slide active" title="繼續播放" aria-label="繼續播放" aria-live="assertive">
|
||||
<i aria-hidden="true"></i>
|
||||
|
|
|
|||
|
|
@ -25,31 +25,31 @@
|
|||
data-cycle-prev="#prev-{{subpart-id}}"
|
||||
data-cycle-slides=".w-annc__item" >
|
||||
<li class="w-annc__item " >
|
||||
<div class="w-annc__img-wrap bullseye" style="position:relative">
|
||||
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}">
|
||||
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
|
||||
<div class="transitionfade"></div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="w-annc__content-wrap">
|
||||
<div class="w-annc__meta">
|
||||
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
|
||||
<span class="w-annc__status label {{status-class}}">{{status}}</span>
|
||||
</span>
|
||||
<span class="w-annc__postdate-wrap" date-format="%Y-%m-%d">
|
||||
<i class="fa-regular fa-calendar"></i>
|
||||
<span class="w-annc__postdate">{{postdate}}</span>
|
||||
</span>
|
||||
<span class="w-annc__category-wrap">
|
||||
<i class="fa-solid fa-list"></i>
|
||||
<span class="w-annc__category">{{category}}</span>
|
||||
</span>
|
||||
</div>
|
||||
<h4 class="w-annc__entry-title">
|
||||
<a class="w-annc__title" href="{{link_to_show}}">{{title}}</a>
|
||||
</h4>
|
||||
<p class="w-annc__subtitle">{{subtitle}}</p>
|
||||
</div>
|
||||
<div class="w-annc__img-wrap bullseye" style="position:relative">
|
||||
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
|
||||
<div class="transitionfade"></div>
|
||||
</div>
|
||||
<div class="w-annc__content-wrap">
|
||||
<div class="w-annc__meta">
|
||||
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
|
||||
<span class="w-annc__status label {{status-class}}">{{status}}</span>
|
||||
</span>
|
||||
<span class="w-annc__postdate-wrap" date-format="%Y-%m-%d">
|
||||
<i class="fa-regular fa-calendar"></i>
|
||||
<span class="w-annc__postdate">{{postdate}}</span>
|
||||
</span>
|
||||
<span class="w-annc__category-wrap">
|
||||
<i class="fa-solid fa-list"></i>
|
||||
<span class="w-annc__category">{{category}}</span>
|
||||
</span>
|
||||
</div>
|
||||
<h4 class="w-annc__entry-title">
|
||||
<span class="w-annc__title">{{title}}</span>
|
||||
</h4>
|
||||
<p class="w-annc__subtitle">{{subtitle}}</p>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -18,8 +18,7 @@
|
|||
<div class="panel-body">
|
||||
<ul class="i-archive-files-list" data-list="files" data-level="2">
|
||||
<li>
|
||||
<a href="{{file-url}}" class="i-archive-files-item" target="{{target}}" title="{{file-name}}">{{file-name}}</a>
|
||||
<span class="label label-primary {{file-type}}">{{file-type}}</span>
|
||||
<a href="{{file-url}}" class="i-archive-files-item" target="{{target}}" title="{{file-name}}">{{file-name}}<span class="label label-primary {{file-type}}">{{file-type}}</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<div class="index-content col-xs-4 col-sm-3">
|
||||
<div class="index-content-inner">
|
||||
<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>
|
||||
<section class="index-part">
|
||||
<h4 class="index-content-title">
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<div class="index-content col-xs-4 col-sm-3">
|
||||
<div class="index-content-inner">
|
||||
<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>
|
||||
<section class="index-part">
|
||||
<h4 class="index-content-title">
|
||||
|
|
|
|||
|
|
@ -4,15 +4,16 @@
|
|||
</h3>
|
||||
<div class="row" data-level="0" data-list="albums" style="display: flex;flex-wrap: wrap;">
|
||||
<div class="index-content col-sm-3">
|
||||
<a href="{{link_to_show}}" aria-label="前往{{page-title}}" title="{{page-title}}">
|
||||
|
||||
<div class="index-content-inner">
|
||||
<a href="{{link_to_show}}" title="{{album-name}}">
|
||||
<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>
|
||||
</a>
|
||||
<div class="index-part">
|
||||
<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>
|
||||
<div class="index-img-description">{{album-description}}</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -5,14 +5,14 @@
|
|||
<div class="row" data-level="0" data-list="albums" style="display: flex;flex-wrap: wrap;">
|
||||
<div class="index-content">
|
||||
<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">
|
||||
<img class="index-img" src="{{thumb-src}}" alt="{{alt_title}}">
|
||||
</div>
|
||||
</a>
|
||||
<div class="index-part col-xs-7 col-sm-10">
|
||||
<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>
|
||||
<div class="index-img-description">{{album-description}}</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -4,15 +4,15 @@
|
|||
</h3>
|
||||
<div class="row" data-level="0" data-list="albums" style="display: flex;flex-wrap: wrap;">
|
||||
<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-pic">
|
||||
<img class="img-thumbnail" src="{{thumb-src}}" alt="{{alt_title}}">
|
||||
<img class="img-thumbnail" src="{{thumb-src}}" alt="{{album-name}}">
|
||||
</div>
|
||||
</a>
|
||||
<div class="index-part">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -5,14 +5,14 @@
|
|||
<div class="row" data-level="0" data-list="albums" style="display: flex;flex-wrap: wrap;">
|
||||
<div class="index-content">
|
||||
<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">
|
||||
<img class="index-img" src="{{thumb-src}}" alt="{{alt_title}}">
|
||||
</div>
|
||||
</a>
|
||||
<div class="index-part col-xs-7 col-sm-10">
|
||||
<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>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
|
||||
<div class="card-front">
|
||||
<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}}">
|
||||
</a>
|
||||
<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>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -6,14 +6,14 @@
|
|||
<div class="index-content col-sm-3">
|
||||
|
||||
<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">
|
||||
<img class="img-thumbnail" src="{{thumb-src}}" alt="{{alt_title}}">
|
||||
<img class="img-thumbnail" src="{{thumb-src}}" alt="{{album-name}}">
|
||||
</div>
|
||||
</a>
|
||||
<section class="index-part">
|
||||
<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>
|
||||
</section>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<div class="i-member-item-inner clearfix">
|
||||
<div class="i-member-pic-wrap col-sm-4 col-xs-4">
|
||||
<a href="{{link_to_show}}" title="{{name}}">
|
||||
<img class="i-member-pic" src="{{image}}" title="{{name}}">
|
||||
<img class="i-member-pic" src="{{image}}" alt="{{name}}">
|
||||
</a>
|
||||
</div>
|
||||
<div class="i-member-profile-data-wrap col-sm-8 col-xs-8">
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<div class="i-member-item-inner clearfix">
|
||||
<div class="i-member-pic-wrap">
|
||||
<a href="{{link_to_show}}" title="{{name}}">
|
||||
<img class="i-member-pic" src="{{image}}" title="{{name}}">
|
||||
<img class="i-member-pic" src="{{image}}" alt="{{name}}">
|
||||
</a>
|
||||
</div>
|
||||
<div class="i-member-profile-data-wrap">
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<div class="i-member-item-inner clearfix">
|
||||
<div class="i-member-pic-wrap">
|
||||
<a href="{{link_to_show}}" title="{{name}}">
|
||||
<img class="i-member-pic" src="{{image}}" title="{{name}}">
|
||||
<img class="i-member-pic" src="{{image}}" alt="{{name}}">
|
||||
</a>
|
||||
</div>
|
||||
<div class="i-member-profile-data-wrap">
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
<div class="i-member-item-inner clearfix">
|
||||
<div class="i-member-pic-wrap">
|
||||
<a href="{{link_to_show}}" title="{{name}}">
|
||||
<img class="i-member-pic" src="{{image}}" title="{{name}}">
|
||||
<img class="i-member-pic" src="{{image}}" alt="{{name}}">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<li class="widget-content">
|
||||
<div class="link-img-wrap{{display_image}}">
|
||||
<a href="{{link_to_show}}" target="{{target}}" title="{{img_description}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}">
|
||||
</a>
|
||||
</div>
|
||||
<a href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">{{title}}</a>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
<div class="link-img-wrap{{display_image}}">
|
||||
<a href="{{link_to_show}}" target="{{target}}" title="{{img_description}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}">
|
||||
</a>
|
||||
</div>
|
||||
<div class="widget-content-title">
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
<div class="link-img-wrap{{display_image}}">
|
||||
<a href="{{link_to_show}}" target="{{target}}" title="{{img_description}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}">
|
||||
</a>
|
||||
</div>
|
||||
<div class="widget-content-title">
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<li class="widget-content widget-content-horizontal ">
|
||||
<a href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">
|
||||
<div class="link-img-wrap{{display_image}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}">
|
||||
</div>
|
||||
</a>
|
||||
<div class="widget-content-title">
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<li class="widget-content widget-content-horizontal col-sm-3">
|
||||
<a href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">
|
||||
<div class="link-img-wrap{{display_image}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}">
|
||||
</div>
|
||||
<div class="widget-content-title">
|
||||
<a class="" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">{{title}}</a>
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@
|
|||
<div class="hex-border">
|
||||
<a href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">
|
||||
<div class="link-img-wrap{{display_image}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}">
|
||||
</div>
|
||||
<a class="widget-content-title" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">{{title}}</a>
|
||||
<a class="widget-content-title" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}" onclick="{{onclick}}">{{title}}</a>
|
||||
<span data-list="statuses" data-level="1">
|
||||
<span class="label status {{status-class}}">{{status}}</span>
|
||||
</span>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<li class="index-content">
|
||||
<a class="index-content-title" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">
|
||||
<div class="link-img-wrap{{display_image}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}">
|
||||
</div>
|
||||
<h4>
|
||||
{{title}}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
</h4>
|
||||
<a class="index-content-title" href="{{link_to_show}}" target="{{target}}" title="{{title_text}}">
|
||||
<div class="link-img-wrap{{display_image}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
|
||||
<img src="{{img_src}}" alt="{{img_description}}">
|
||||
</div>
|
||||
|
||||
<small class="index-context">{{context}}</small>
|
||||
|
|
|
|||
Loading…
Reference in New Issue