This commit is contained in:
ken 2026-10-02 16:36:28 +08:00
parent a8d0fe2bcb
commit be23369a0d
83 changed files with 3025 additions and 1474 deletions

View File

@ -964,7 +964,7 @@
$(this).append('<span class="sr-only">網路資源標題</span>');
}
});
$('input').each(function() {
$('input.input-search, .search-container input, .search-box input, #search input').each(function() {
var $this = $(this);
if (!$this.attr('title') || $this.attr('title').trim() === '') {
$this.attr('title', '網內搜尋');
@ -992,7 +992,7 @@
var isLinkImage = $parentA.length > 0 && $parentA.text().replace(/\u00a0/g, '').trim() === "";
// --- 1. 處理「裝飾性圖片」標註 ---
if (currentAlt === "announcement image" || currentAlt === "裝飾圖片" || currentTitle === "裝飾圖片" || 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;
@ -2183,27 +2183,28 @@ $(function() {
});
//rucaptcha-image
$(document).ready(function () {
$('.rucaptcha-image').removeAttr('onload');
// 檢查是否已插入過
if (!$('#captcha_audio').length) {
const audioButton = $(`
<button
title="播放驗證碼語音"
type="button"
onclick="document.getElementById('captcha_audio').play();"
class="fas fa-volume-up"
aria-label="播放驗證碼語音"
role="button"
style="font-size: 1.5em; color: #333; cursor: pointer; border: 2px solid #333; padding: 0.2em;">
<span class="sr-only">播放驗證碼語音</span>
</button>
`);
const audio = $('<audio id="captcha_audio" src="/rucaptcha/?format=wav&amp;locale=zh_tw"></audio>');
$('.rucaptcha-image').after(audioButton, audio);
// >>> 修正:先確認頁面上真的有驗證碼圖片,再往下執行,避免沒有驗證碼的頁面也發出多餘的 wav 請求
if ($('.rucaptcha-image').length) {
$('.rucaptcha-image').removeAttr('onload');
// 檢查是否已插入過
if (!$('#captcha_audio').length) {
const audioButton = $(`
<button
title="播放驗證碼語音"
type="button"
onclick="document.getElementById('captcha_audio').play();"
class="fas fa-volume-up"
aria-label="播放驗證碼語音"
role="button"
style="font-size: 1.5em; color: #333; cursor: pointer; border: 2px solid #333; padding: 0.2em;">
<span class="sr-only">播放驗證碼語音</span>
</button>
`);
const audio = $('<audio id="captcha_audio" src="/rucaptcha/?format=wav&amp;locale=zh_tw"></audio>');
$('.rucaptcha-image').after(audioButton, audio);
}
}
// <<< 修正結束
});
//萬用表格searchbtn2
@ -2226,6 +2227,28 @@ $(function() {
// 預設 aria-expanded 為 false
$(".searchbtn2").attr("aria-expanded", "false");
});
// ✅ searchbtn2 Tab 鍵聚焦時自動展開 .searchbox
$(document).ready(function() {
function fixSearchbtn2FocusA11y() {
setTimeout(function() {
$('.searchbtn2').on('focus', function() {
var $searchbox = $('.searchbox');
// ✅ 只在收合狀態時才展開,不影響已展開的狀態
if (!$searchbox.is(':visible')) {
$searchbox.slideDown(300, function() {
// ✅ 同步更新 aria-expanded(與原本 click 邏輯一致)
$('.searchbtn2').attr('aria-expanded', 'true');
// ✅ 同步加上 ken-click2(與原本 click 邏輯一致)
$('.searchbtn2').closest('.ken-click').addClass('ken-click2');
});
}
});
}, 500);
}
fixSearchbtn2FocusA11y();
});
// 強制保持全站search展開
$(document).ready(function () {
@ -3472,7 +3495,7 @@ function fixSortLinkA11y() {
});
}
function fixSearchInputA11y() {
$('input[type="search"], input[type="text"]').each(function () {
$('input[type="search"], input.input-search, .search-container input, .search-box input').each(function () {
var $input = $(this);
// 已有對應 label 就跳過
@ -3573,4 +3596,82 @@ $(document).ready(function () {
});
//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();
});
}(jQuery, window));

View File

@ -3,7 +3,7 @@
a[accesskey] {
position: absolute;
margin-left: -0.9375em;
color: transparent !important;
color: transparent;
}
.verticalhome{
a[accesskey] {

View File

@ -6,6 +6,11 @@
.fa-classic, .fa-regular, .fa-solid, .far, .fas ,.fa{
font-family: var(--fa-style-family, "FontAwesome")!important;
}
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

File diff suppressed because it is too large Load Diff

View File

@ -315,7 +315,7 @@
}
}
}
.w-annc__subtitle{
.w-annc__subtitle,p{
color: #fff;
font-size: 1rem;
display: -webkit-box;
@ -329,6 +329,8 @@
opacity: 0;
-webkit-transition: max-height .6s,opacity .6s;
transition: max-height .6s,opacity .6s;
padding-bottom: 0;
margin-bottom: 0;
@media(min-width:1920px){
font-size: 1.2em;
}
@ -354,7 +356,7 @@
.card:before{
height:100%;
}
.w-annc__subtitle{
.w-annc__subtitle,p{
max-height: 100px;
opacity: 1;
}

View File

@ -85,13 +85,6 @@
</div>
<div class="contentwrap2">
<div class="marqueeken">
<div class="scroll">
<div class="text1">
ORBIT
</div>
</div>
</div>
<div class="layout-content-inner container">
<div class="column row">
<section class="two-column col-sm-9" data-pp="39"></section>

View File

@ -29,7 +29,7 @@
</div>
</div>
<ul class="w-ba-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></ul>
<ul class="w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></ul>
<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>

View File

@ -25,7 +25,7 @@
{{html}}
</div>
<div class="ad-overlay w-ad-banner__overlay_{{subpart-id}}"></div>
<div class="w-ba-banner__caption w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></div>
<ul class="w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></ul>
<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>

View File

@ -26,7 +26,7 @@
</a>
</div>
</div>
<ul class="w-ba-banner__pager-3 banner-pager banner_caption_{{subpart-id}}"></ul>
<ul class="w-ad-banner__pager-3 banner-pager banner_caption_{{subpart-id}}"></ul>
<ul class="button-mid">
<i class="fa fa-angle-left prev-button" aria-label="<%= I18n.t("ad_banner.prev") %>"></i>
<i class="fa fa-angle-right next-button" aria-label="<%= I18n.t("ad_banner.next") %>"></i>

View File

@ -1,5 +1,5 @@
<div class="w-ba-banner ba-banner-widget-5">
<div class="w-ba-banner__wrap cycle-slideshow"
<div class="w-ad-banner__wrap w-ba-banner__wrap cycle-slideshow"
data-list="images"
data-level="0"
data-cycle-slides=".w-ba-banner__slide"
@ -10,7 +10,7 @@
data-cycle-timeout="{{timeout}}"
data-cycle-fx="{{ad_fx}}"
data-cycle-pager=".banner_caption_{{subpart-id}}"
data-pager-template="<li><a></a></li>"
data-pager-template=""
data-pager-active-class="active-slide"
data-cycle-swipe=true
data-cycle-swipe-fx="scrollHorz"
@ -33,7 +33,9 @@
</div>
</div>
<div class="w-ba-banner__caption banner-pager banner_caption_{{subpart-id}}"></div>
<div class="w-ad-banner__pager-1 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>

View File

@ -28,7 +28,7 @@
{{html}}
</div>
<div class="ad-overlay w-ad-banner__overlay_{{subpart-id}}"></div>
<div class="w-ba-banner__caption w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></div>
<ul class="w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></ul>
<ul class="controlplay">
<a role="button" class="resume-slide" title = "<%= (I18n.locale.to_s =="zh_tw") ? "繼續播放" : "resume" %>"><i></i></a>
<a class="pause-slide" title = "<%= (I18n.locale.to_s =="zh_tw") ? "暫停播放" : "pause"%>"><i></i></a>

View File

@ -25,7 +25,7 @@
{{html}}
</div>
<div class="ad-overlay banner-overlay"><div class="ad-overlay2 w-ad-banner__overlay_{{subpart-id}}"></div></div>
<div class="w-ba-banner__caption w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></div>
<ul class="w-ad-banner__pager-2 banner-pager banner_caption_{{subpart-id}}"></ul>
<ul class="controlplay"><a role="button" href="javascript:;" class="resume-slide active" title="<%= I18n.t("ad_banner.resume") %>"><i aria-hidden="true" aria-label="<%= I18n.t("ad_banner.resume") %>"></i><p style="display: none;"><%= I18n.t("ad_banner.resume") %></p></a><a href="javascript:;" class="pause-slide" title="<%= I18n.t("ad_banner.pause") %>"><i aria-hidden="true" aria-label="<%= I18n.t("ad_banner.pause") %>"></i><p style="display: none;"><%= I18n.t("ad_banner.pause") %></p></a></ul>
<ul class="button-mid">
<i class="fa fa-angle-left prev-button" aria-label="<%= I18n.t("ad_banner.prev") %>"></i>

View File

@ -6,23 +6,25 @@
<li class="w-annc__item">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap ">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__meta">
<div class="w-annc__content-wrap">
<div class="w-annc__meta">
<span class="w-annc__postdate-wrap" date-format="%Y-%m-%d">
<span class="w-annc__postdate">{{postdate}}</span>
</span>
<span class="w-annc__category-wrap">
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label status {{status-class}}">{{status}}</span>
</span>
<span class="w-annc__postdate-wrap" date-format="%Y-%m-%d">
<span class="w-annc__postdate">{{postdate}}</span>
</span>
<span class="w-annc__category-wrap">
<span class="w-annc__category">{{category}}</span>
<span class="w-annc__status label status {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>
<p class="w-annc__subtitle">{{subtitle}}</p>
</div>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>
<p class="w-annc__subtitle">{{subtitle}}</p>
</a>
</li>
</ul>

View File

@ -28,14 +28,11 @@
<div class="w-annc__item_inner">
<a href="{{link_to_show}}" class="widget-title-a">
<div class="w-annc__img-wrap bullseye" style="position:relative">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<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>
@ -45,6 +42,9 @@
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>
@ -66,49 +66,7 @@
overflow: hidden;
}
</style>
<script>
$(document).ready(function(){
var $widget = $('[data-subpart-id=\"{{subpart-id}}\"]');
// nav_tabs_filter 切換後,對當前顯示的 ul 初始化 cycle2
function initCycle_{{subpart-id}}($ul){
if(!$ul || $ul.length === 0) return;
if($ul.data('cycle.opts')) return; // 已初始化過就跳過
$ul.addClass('cycle-slideshow')
.attr('data-cycle-fx', 'carousel')
.attr('data-cycle-timeout', '0')
.attr('data-cycle-carousel-visible', '3')
.attr('data-cycle-carousel-fluid', 'true')
.attr('data-cycle-next', '#next-{{subpart-id}}')
.attr('data-cycle-prev', '#prev-{{subpart-id}}')
.attr('data-cycle-slides', '.w-annc__item')
.cycle();
}
// 偵測是否有 nav_tabs_filter
var hasNavTabsFilter = $widget.find('.nav_tabs_filter').length > 0;
if(hasNavTabsFilter){
// 初始化第一個顯示的 ul
var $activeUl = $widget.find('[data-category]:not([style*="display: none"]) ul.w-annc__list').first();
initCycle_{{subpart-id}}($activeUl);
// 頁籤切換時重新初始化對應的 ul
$widget.find('.filter_tab').on('click', function(){
var category = $(this).data('category');
setTimeout(function(){
var $ul = $widget.find('[data-category="' + category + '"] ul.w-annc__list').first();
initCycle_{{subpart-id}}($ul);
}, 100);
});
} else {
// 沒有 nav_tabs_filter,直接初始化
var $ul = $widget.find('ul.w-annc__list').first();
initCycle_{{subpart-id}}($ul);
}
});
</script>

View File

@ -1,10 +1,7 @@
<div class="w-annc widget-announcement-16">
<h3 class="w-annc__widget-title">
<span>{{widget-title}}</span>
</h3>
<div class="w-annc__wrap cycle-slideshow"
data-level="0"
data-list="announcements"
@ -12,27 +9,26 @@
data-cycle-fx="carousel"
data-cycle-carousel-fluid=true
data-cycle-pause-on-hover="true"
data-cycle-speed="200"
data-cycle-speed="0"
data-cycle-carousel-visible="1"
data-cycle-prev=".cycle-prev"
data-cycle-next=".cycle-next"
data-cycle-next="#next-{{subpart-id}}"
data-cycle-prev="#prev-{{subpart-id}}"
data-cycle-swipe=true
data-cycle-swipe-fx="carousel"
>
<div class="w-annc__item">
<div class="w-annc__img-wrap">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</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">
<span class="w-annc__postdate">{{postdate}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<a class="w-annc__title" href="{{link_to_show}}">{{title}}</a>
</h4>
@ -40,9 +36,13 @@
</div>
</div>
<div class="slide-button">
<button class="cycle-prev btn btn-warning" title="上一張" aria-label="上一張"> <i class="fa fa-angle-left"></i></button>
<button class="cycle-next btn btn-warning" title="下一張" aria-label="下一張"> <i class="fa fa-angle-right"></i></button>
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多+" : "More NEWS" %></a>
</div>
<div class="button-mid">
<button id="prev-{{subpart-id}}" class="prev-button btn" title="上一張" aria-label="上一張">
<i class="fa fa-angle-left"></i>
</button>
<button id="next-{{subpart-id}}" class="next-button btn" title="下一張" aria-label="下一張">
<i class="fa fa-angle-right"></i>
</button>
</div>
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多+" : "More NEWS" %></a>
</div>

View File

@ -7,17 +7,17 @@
</div>
<ul class="w-annc__list row" data-level="0" data-list="announcements">
<li class="w-annc__item col-sm-4">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div>
<div class="w-annc__content-wrap">
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>
<div class="w-annc__subtitle">{{subtitle}}</div>
<div class="w-annc_read_more btn">{{read_more_text}}</div>
</div>
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" >
</div>
<div class="w-annc__content-wrap">
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>
<div class="w-annc__subtitle">{{subtitle}}</div>
<div class="w-annc_read_more btn">{{read_more_text}}</div>
</div>
</a>
</li>
</ul>

View File

@ -2,10 +2,12 @@
<h3 class="w-annc__widget-title">
<span>{{widget-title}}</span>
</h3>
<div class="w-annc__more-wrap clearfix">
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多最新消息" : "More NEWS" %></a>
</div>
<div style="position: absolute;top: 50%;width:100%; z-index: 101;">
<div style=" position: absolute;
top: 1em;
width: 6em;
right: 1em;
z-index: 101;">
<div style="">
<button id="prev-{{subpart-id}}" class="btn-left" title = "<%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %>" style="float: left;height: 2.5em; width: 2.5em;background: border: 0;background-size: contain;position: absolute;transition:.3s; left: 0.6%;color: #ffffff;
background: rgba(0, 0, 0, 0.2);
@ -18,6 +20,7 @@
</div>
</div>
<ul class="w-annc__list row cycle-slideshow" data-level="0" data-list="announcements" data-cycle-fx="carousel"
data-cycle-carousel-rwd-json="{767: 1}"
data-cycle-timeout="0"
data-cycle-carousel-visible="2"
data-cycle-carousel-fluid="true"
@ -28,9 +31,6 @@
<div class="w-annc__content-wrap" style="position:relative">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<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>
@ -38,138 +38,20 @@
<span class="w-annc__category-wrap">
<i class="fa-solid fa-list"></i>
<span class="w-annc__category">{{category}}</span>
</span>
</a>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>
<p class="w-annc__subtitle">{{subtitle}}</p>
</a>
</div>
</li>
</ul>
<div class="w-annc__more-wrap clearfix">
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多最新消息" : "More NEWS" %></a>
</div>
</div>
<!-- <script src="//code.jquery.com/ui/1.13.2/jquery-ui.js"></script>
<script>
function combineul_{{subpart-id}}(){
var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
parents.each(function(i,v){
for(var i=1;i<$(v).find('ul.w-annc__list').length;i++)
$(v).find('ul.w-annc__list').eq(0).find('>li').eq(-1).after($(v).find('ul.w-annc__list').eq(i).html());
var ullength = $(v).find('ul.w-annc__list').length;
for(var i = 1;i < ullength;i++)
$(v).find('ul.w-annc__list').eq(-1).remove();
})
};
var num;
var lilength = $('[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item').length;
function reorganize_{{subpart-id}}(num){
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').toArray();
var currentul = uls.findIndex(function(v){
return $(v).hasClass("active") && !$(v).hasClass("hidden_item");
})
if(currentul == -1)
currentul = 0;
var li_active_idx = 0;
if(currentul != 0)
li_active_idx = $(uls[currentul]).find("li.w-annc__item").eq(0).index("li.w-annc__item");
combineul_{{subpart-id}}();
var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
parents.each(function(i,v){
var lilength = $(v).find('li.w-annc__item').length;
var ul_length = Math.ceil(lilength/num);
for(var ii=1;ii< ul_length;ii++){
var clone_ul = $(v).find('ul.w-annc__list').eq(-1).clone();
clone_ul.empty();
clone_ul.removeClass("active");
clone_ul.css("display","");
$(v).find('ul.w-annc__list').eq(-1).after(clone_ul.prop("outerHTML"));
var lihtml="";
if(ii != (ul_length-1)){
for(var j=0;j<num;j++){
lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
};
}else{
for(var j=0;j< lilength - num *(ul_length-1) ;j++){
lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
};
};
$(v).find('ul.w-annc__list').eq(-1).html(lihtml);
}
if(ul_length != 1 )
for(var i=0;i< lilength -num ; i++)
$(v).find('ul.w-annc__list').eq(0).find("li.w-annc__item").eq(num).remove();
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css("display","none");
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('padding','0');
$('[data-subpart-id=\"{{subpart-id}}\"] button').css('z-index','10');
// $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css('width','calc('+100/num+'% - '+100/10+'em)'); //20px=>li的margin
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css('float','left');
var active_ul = $("[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item").eq(li_active_idx).parents("ul.w-annc__list");
active_ul.addClass("active");
active_ul.removeClass("hidden_item");
active_ul.css("display","");
};
$(window).resize(function(){
if($(window).width()>1024){
reorganize_{{subpart-id}}(2);
num=2;
}else if($(window).width()>576){
reorganize_{{subpart-id}}(2);
num=2;
}else{
reorganize_{{subpart-id}}(1);
num=1;
}
})
$(document).ready(function(){
if($(window).width()>1024){
reorganize_{{subpart-id}}(2);
num=2;
}else if($(window).width()>576){
reorganize_{{subpart-id}}(2);
num=2;
}else{
reorganize_{{subpart-id}}(1);
num=1;
}
var flag=false;
$('.btn-left').click(function(){
if(!flag){
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').toArray();
var ul_length = uls.length;
var currentul = uls.findIndex(function(v){
return $(v).hasClass("active");
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('display','none');
if(currentul - 1 < 0)
currentul += ul_length;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').removeClass("active");
var active_item = $(uls[currentul-1]);
active_item.addClass("active");
active_item.find("li").css("display","block");
flag=true;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list.active').eq(0).effect("slide", { direction: "right", mode: 'show', duration: 500},function(){flag=false;});
};
});
$('.btn-right').click(function(){
var lilength = $('[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item').length;
if(!flag){
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').toArray();
var ul_length = uls.length;
var currentul = uls.findIndex(function(v){
return $(v).hasClass("active");
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('display','none');
if(currentul + 1 > ul_length - 1)
currentul -= ul_length;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').removeClass("active");
var active_item = $(uls[currentul+1]);
active_item.addClass("active");
active_item.find("li").css("display","block");
flag=true;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list.active').eq(0).effect("slide", { direction: "left", mode: 'show', duration: 500},function(){flag=false;});
};
});
});
</script> -->

View File

@ -5,25 +5,27 @@
<ul class="w-annc__list" data-level="0" data-list="announcements">
<li class="w-annc__item">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap col-sm-4">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div>
<div class="w-annc__content-wrap col-sm-8">
<div class="w-annc__meta">
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label status {{status-class}}">{{status}}</span>
</span>
<span class="w-annc__postdate-wrap" date-format="%Y-%m-%d">
<span class="w-annc__postdate">{{postdate}}</span>
</span>
<span class="w-annc__category-wrap">
<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 class="widget-title-a-inner">
<div class="w-annc__img-wrap col-sm-4">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap col-sm-8">
<div class="w-annc__meta">
<span class="w-annc__postdate-wrap" date-format="%Y-%m-%d">
<span class="w-annc__postdate">{{postdate}}</span>
</span>
<span class="w-annc__category-wrap">
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label status {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>
<p class="w-annc__subtitle">{{subtitle}}</p>
</div>
</div>
</a>
</li>

View File

@ -10,14 +10,11 @@
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap bullseye" >
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap card">
<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>
@ -27,6 +24,9 @@
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>

View File

@ -29,14 +29,11 @@
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap bullseye" >
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap card">
<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>
@ -46,6 +43,9 @@
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>

View File

@ -19,11 +19,7 @@
</div>
<ul class="w-annc__list row" data-level="0" data-list="announcements">
<li class="w-annc__item col-md-6">
<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>
<div class="w-annc__meta">
<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>
@ -32,9 +28,13 @@
<i class="fa-solid fa-list"></i>
<span class="w-annc__category">{{category}}</span>
</span>
</div>
</div>
<div class="w-annc__content-wrap">
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
<a class="w-annc__title" href="{{link_to_show}}">{{title}}</a>
</h4>
<p class="w-annc__subtitle">{{subtitle}}</p>
</div>

View File

@ -6,12 +6,9 @@
<li class="w-annc__item">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap ">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__meta">
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label status {{status-class}}">{{status}}</span>
</span>
<span class="w-annc__postdate-wrap" date-format="%Y-%m-%d">
<span class="w-annc__postdate">{{postdate}}</span>
</span>
@ -19,6 +16,9 @@
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label status {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>

View File

@ -9,14 +9,11 @@
<li class="w-annc__item col-md-4">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap bullseye" >
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap card">
<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 fa-calendar-o"></i>
<span class="w-annc__postdate">{{postdate}}</span>
@ -26,6 +23,9 @@
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>

View File

@ -30,7 +30,7 @@
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap bullseye" >
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap card">

View File

@ -6,13 +6,10 @@
<li class="w-annc__item">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap ">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap card">
<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>
@ -22,6 +19,9 @@
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>
@ -34,3 +34,51 @@
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多最新消息" : "More NEWS" %></a>
</div>
</div>
<style>
.widget-announcement-26 {
.w-annc__list {
// 讓 grid 的 row 有高度
@media(min-width: $screen-sm) {
grid-template-rows: 1fr 1fr; // 兩列平均分配
}
}
.w-annc__item {
// li 撐滿 grid 格子
display: flex;
flex-direction: column;
}
// a 撐滿 li
.widget-title-a {
display: flex;
flex-direction: column;
flex: 1;
height: 100%;
}
// img-wrap 撐滿 a
.w-annc__img-wrap {
flex: 1;
overflow: hidden;
position: relative;
height: 100%; // 配合 img height: 100%
}
.w-annc__img {
width: 100% !important;
height: 100% !important;
object-fit: cover; // 關鍵:讓圖片填滿並裁切
position: absolute !important;
top: 0;
left: 0;
}
// card 固定在底部
.w-annc__content-wrap.card {
flex-shrink: 0;
}
}
</style>

View File

@ -0,0 +1,173 @@
<div class="w-annc w-annc widget-announcement-27" style="position:relative;">
<h3 class="w-annc__widget-title">
<span>{{widget-title}}</span>
</h3>
<div style=" position: absolute;
top: 0;
width: 6em;
right: 1em;
z-index: 101;">
<div style="">
<button id="prev-{{subpart-id}}" class="btn-left" title = "<%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %>" style="float: left;height: 2.5em; width: 2.5em;background: border: 0;background-size: contain;position: absolute;transition:.3s; left: 0.6%;color: #ffffff;
border-radius: 50%;
border: none; z-index: 2;"><i class="fa fa-angle-left prev-button" aria-hidden="true" style="font-size: 1.5rem;"></i><span style="display: none;"><%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %></span></button>
<button id="next-{{subpart-id}}" class="btn-right" title = "<%= (I18n.locale.to_s =="zh_tw") ? "下一張" : "next" %>" style="float: right;;height: 2.5em; width: 2.5em;background-size: contain;border: 0;position: absolute;transition:.3s;right: 0.6%;color: #ffffff;
border-radius: 50%;
border: none; z-index: 2;"><i class="fa fa-angle-right next-button" aria-hidden="true" style="font-size: 1.5rem;"></i><span style="display: none;"><%= (I18n.locale.to_s =="zh_tw") ? "下一張" : "next" %></span></button>
</div>
</div>
<ul class="w-annc__list row" data-level="0" data-list="announcements">
<li class="w-annc__item col-md-6">
<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>
</li>
</ul>
<div class="w-annc__more-wrap clearfix">
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多最新消息" : "More NEWS" %></a>
</div>
</div>
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
function combineul_{{subpart-id}}(){
var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
parents.each(function(i,v){
for(var i=1;i<$(v).find('ul.w-annc__list').length;i++)
$(v).find('ul.w-annc__list').eq(0).find('>li').eq(-1).after($(v).find('ul.w-annc__list').eq(i).html());
var ullength = $(v).find('ul.w-annc__list').length;
for(var i = 1;i < ullength;i++)
$(v).find('ul.w-annc__list').eq(-1).remove();
})
};
var num;
var lilength = $('[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item').length;
function reorganize_{{subpart-id}}(num){
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').toArray();
var currentul = uls.findIndex(function(v){
return $(v).hasClass("active") && !$(v).hasClass("hidden_item");
})
if(currentul == -1)
currentul = 0;
var li_active_idx = 0;
if(currentul != 0)
li_active_idx = $(uls[currentul]).find("li.w-annc__item").eq(0).index("li.w-annc__item");
combineul_{{subpart-id}}();
var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
parents.each(function(i,v){
var lilength = $(v).find('li.w-annc__item').length;
var ul_length = Math.ceil(lilength/num);
for(var ii=1;ii< ul_length;ii++){
var clone_ul = $(v).find('ul.w-annc__list').eq(-1).clone();
clone_ul.empty();
clone_ul.removeClass("active");
clone_ul.css("display","");
$(v).find('ul.w-annc__list').eq(-1).after(clone_ul.prop("outerHTML"));
var lihtml="";
if(ii != (ul_length-1)){
for(var j=0;j<num;j++){
lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
};
}else{
for(var j=0;j< lilength - num *(ul_length-1) ;j++){
lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
};
};
$(v).find('ul.w-annc__list').eq(-1).html(lihtml);
}
if(ul_length != 1 )
for(var i=0;i< lilength -num ; i++)
$(v).find('ul.w-annc__list').eq(0).find("li.w-annc__item").eq(num).remove();
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css("display","none");
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('padding','0 1.125em');
$('[data-subpart-id=\"{{subpart-id}}\"] button').css('z-index','10');
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css('width','calc('+100/num+'% - '+20/16+'em)'); //20px=>li的margin
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css('float','left');
var active_ul = $("[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item").eq(li_active_idx).parents("ul.w-annc__list");
active_ul.addClass("active");
active_ul.removeClass("hidden_item");
active_ul.css("display","");
};
$(window).resize(function(){
if($(window).width()>1024){
reorganize_{{subpart-id}}(9);
num=9;
}else if($(window).width()>576){
reorganize_{{subpart-id}}(9);
num=9;
}else{
reorganize_{{subpart-id}}(9);
num=9;
}
})
$(document).ready(function(){
if($(window).width()>1024){
reorganize_{{subpart-id}}(9);
num=9;
}else if($(window).width()>576){
reorganize_{{subpart-id}}(9);
num=9;
}else{
reorganize_{{subpart-id}}(9);
num=9;
}
var flag=false;
$('[data-subpart-id=\"{{subpart-id}}\"] .btn-left').click(function(){
if(!flag){
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').toArray();
var ul_length = uls.length;
var currentul = uls.findIndex(function(v){
return $(v).hasClass("active");
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('display','none');
if(currentul - 1 < 0)
currentul += ul_length;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').removeClass("active");
var active_item = $(uls[currentul-1]);
active_item.addClass("active");
active_item.find("li").css("display","block");
flag=true;
$("body").css("overflow-x","hidden");
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list.active').eq(0).effect("slide", { direction: "left", mode: 'show', duration: 500},function(){$("body").css("overflow-x","");flag=false;});
};
});
$('[data-subpart-id=\"{{subpart-id}}\"] .btn-right').click(function(){
var lilength = $('[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item').length;
if(!flag){
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').toArray();
var ul_length = uls.length;
var currentul = uls.findIndex(function(v){
return $(v).hasClass("active");
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('display','none');
if(currentul + 1 > ul_length - 1)
currentul -= ul_length;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').removeClass("active");
var active_item = $(uls[currentul+1]);
active_item.addClass("active");
active_item.find("li").css("display","block");
flag=true;
$("body").css("overflow-x","hidden");
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list.active').eq(0).effect("slide", { direction: "right", mode: 'show', duration: 500},function(){$("body").css("overflow-x","");flag=false;});
};
});
});
</script>

View File

@ -0,0 +1,180 @@
<div class="w-annc w-annc widget-announcement-28" style="position:relative;">
<h3 class="w-annc__widget-title">
<span>{{widget-title}}</span>
</h3>
<div style=" position: absolute;
top: 0;
width: 6em;
right: 1em;
z-index: 101;">
<div style="">
<button id="prev-{{subpart-id}}" class="btn-left" title = "<%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %>" style="float: left;height: 2.5em; width: 2.5em;background: border: 0;background-size: contain;position: absolute;transition:.3s; left: 0.6%;color: #ffffff;
border-radius: 50%;
border: none; z-index: 2;"><i class="fa fa-angle-left prev-button" aria-hidden="true" style="font-size: 1.5rem;"></i><span style="display: none;"><%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %></span></button>
<button id="next-{{subpart-id}}" class="btn-right" title = "<%= (I18n.locale.to_s =="zh_tw") ? "下一張" : "next" %>" style="float: right;;height: 2.5em; width: 2.5em;background-size: contain;border: 0;position: absolute;transition:.3s;right: 0.6%;color: #ffffff;
border-radius: 50%;
border: none; z-index: 2;"><i class="fa fa-angle-right next-button" aria-hidden="true" style="font-size: 1.5rem;"></i><span style="display: none;"><%= (I18n.locale.to_s =="zh_tw") ? "下一張" : "next" %></span></button>
</div>
</div>
<ul class="w-annc__list row cycle-slideshow" data-level="0" data-list="announcements" data-cycle-fx="carousel"
data-cycle-carousel-rwd-json="{767: 1}"
data-cycle-timeout="0"
data-cycle-carousel-visible="3"
data-cycle-carousel-fluid="true"
data-cycle-next="#next-{{subpart-id}}"
data-cycle-prev="#prev-{{subpart-id}}"
data-cycle-slides=".w-annc__item" >
<li class="w-annc__item ">
<div class="w-annc__content-wrap" style="position:relative">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__meta">
<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>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>
<p class="w-annc__subtitle">{{subtitle}}</p>
</a>
</div>
</li>
</ul>
<div class="w-annc__more-wrap clearfix">
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多最新消息" : "More NEWS" %></a>
</div>
</div>
<!-- <script src="//code.jquery.com/ui/1.13.2/jquery-ui.js"></script>
<script>
function combineul_{{subpart-id}}(){
var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
parents.each(function(i,v){
for(var i=1;i<$(v).find('ul.w-annc__list').length;i++)
$(v).find('ul.w-annc__list').eq(0).find('>li').eq(-1).after($(v).find('ul.w-annc__list').eq(i).html());
var ullength = $(v).find('ul.w-annc__list').length;
for(var i = 1;i < ullength;i++)
$(v).find('ul.w-annc__list').eq(-1).remove();
})
};
var num;
var lilength = $('[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item').length;
function reorganize_{{subpart-id}}(num){
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').toArray();
var currentul = uls.findIndex(function(v){
return $(v).hasClass("active") && !$(v).hasClass("hidden_item");
})
if(currentul == -1)
currentul = 0;
var li_active_idx = 0;
if(currentul != 0)
li_active_idx = $(uls[currentul]).find("li.w-annc__item").eq(0).index("li.w-annc__item");
combineul_{{subpart-id}}();
var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
parents.each(function(i,v){
var lilength = $(v).find('li.w-annc__item').length;
var ul_length = Math.ceil(lilength/num);
for(var ii=1;ii< ul_length;ii++){
var clone_ul = $(v).find('ul.w-annc__list').eq(-1).clone();
clone_ul.empty();
clone_ul.removeClass("active");
clone_ul.css("display","");
$(v).find('ul.w-annc__list').eq(-1).after(clone_ul.prop("outerHTML"));
var lihtml="";
if(ii != (ul_length-1)){
for(var j=0;j<num;j++){
lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
};
}else{
for(var j=0;j< lilength - num *(ul_length-1) ;j++){
lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
};
};
$(v).find('ul.w-annc__list').eq(-1).html(lihtml);
}
if(ul_length != 1 )
for(var i=0;i< lilength -num ; i++)
$(v).find('ul.w-annc__list').eq(0).find("li.w-annc__item").eq(num).remove();
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css("display","none");
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('padding','0');
$('[data-subpart-id=\"{{subpart-id}}\"] button').css('z-index','10');
// $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css('width','calc('+100/num+'% - '+100/10+'em)'); //20px=>li的margin
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css('float','left');
var active_ul = $("[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item").eq(li_active_idx).parents("ul.w-annc__list");
active_ul.addClass("active");
active_ul.removeClass("hidden_item");
active_ul.css("display","");
};
$(window).resize(function(){
if($(window).width()>1024){
reorganize_{{subpart-id}}(2);
num=2;
}else if($(window).width()>576){
reorganize_{{subpart-id}}(2);
num=2;
}else{
reorganize_{{subpart-id}}(1);
num=1;
}
})
$(document).ready(function(){
if($(window).width()>1024){
reorganize_{{subpart-id}}(2);
num=2;
}else if($(window).width()>576){
reorganize_{{subpart-id}}(2);
num=2;
}else{
reorganize_{{subpart-id}}(1);
num=1;
}
var flag=false;
$('.btn-left').click(function(){
if(!flag){
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').toArray();
var ul_length = uls.length;
var currentul = uls.findIndex(function(v){
return $(v).hasClass("active");
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('display','none');
if(currentul - 1 < 0)
currentul += ul_length;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').removeClass("active");
var active_item = $(uls[currentul-1]);
active_item.addClass("active");
active_item.find("li").css("display","block");
flag=true;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list.active').eq(0).effect("slide", { direction: "right", mode: 'show', duration: 500},function(){flag=false;});
};
});
$('.btn-right').click(function(){
var lilength = $('[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item').length;
if(!flag){
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').toArray();
var ul_length = uls.length;
var currentul = uls.findIndex(function(v){
return $(v).hasClass("active");
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').css('display','none');
if(currentul + 1 > ul_length - 1)
currentul -= ul_length;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').removeClass("active");
var active_item = $(uls[currentul+1]);
active_item.addClass("active");
active_item.find("li").css("display","block");
flag=true;
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list.active').eq(0).effect("slide", { direction: "left", mode: 'show', duration: 500},function(){flag=false;});
};
});
});
</script> -->

View File

@ -7,9 +7,6 @@
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__content-wrap col-sm-8">
<div class="w-annc__meta">
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label status {{status-class}}">{{status}}</span>
</span>
<span class="w-annc__postdate-wrap" date-format="%Y-%m-%d">
<span class="w-annc__postdate">{{postdate}}</span>
</span>
@ -17,13 +14,16 @@
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label status {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>
<p class="w-annc__subtitle">{{subtitle}}</p>
</div>
<div class="w-annc__img-wrap col-sm-4">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
</a>

View File

@ -0,0 +1,244 @@
<div class="w-annc widget-announcement-30">
<h2 class="w-annc__widget-title">
<span>{{widget-title}}</span>
</h2>
<div class="w-annc30-wrap">
<!-- 左右箭頭 -->
<button class="w-annc30-prev" type="button" title="上一則" aria-label="上一則" style="display:none;">
<i class="fa fa-angle-left" aria-hidden="true"></i>
</button>
<button class="w-annc30-next" type="button" title="下一則" aria-label="下一則" style="display:none;">
<i class="fa fa-angle-right" aria-hidden="true"></i>
</button>
<div class="w-annc30-overflow">
<ul class="w-annc__list w-annc30-track" data-level="0" data-list="announcements">
<li class="w-annc__item">
<a href="{{link_to_show}}">
<div class="w-annc__img-wrap">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap card">
<div class="w-annc__meta">
<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>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h3 class="w-annc__entry-title">
<span class="w-annc__title" >{{title}}</span>
</h3>
<p class="w-annc__subtitle">{{subtitle}}</p>
</div>
</a>
</li>
</ul>
</div>
</div>
<div class="w-annc__more-wrap clearfix">
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多最新消息" : "More NEWS" %></a>
</div>
</div>
<style type="text/css">
.widget-announcement-30 .w-annc30-wrap {
position: relative;
}
.widget-announcement-30 .w-annc30-overflow {
overflow: hidden;
}
/* 箭頭樣式 */
.widget-announcement-30 .w-annc30-prev,
.widget-announcement-30 .w-annc30-next {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 2.5em;
height: 2.5em;
border-radius: 50%;
border: none;
background: rgba(0, 0, 0, 0.25);
color: #fff;
font-size: 1.2rem;
cursor: pointer;
z-index: 10;
display: flex;
align-items: center;
justify-content: center;
transition: background 0.2s;
}
.widget-announcement-30 .w-annc30-prev { left: -1em; }
.widget-announcement-30 .w-annc30-next { right: -1em; }
.widget-announcement-30 .w-annc30-prev:hover,
.widget-announcement-30 .w-annc30-next:hover {
background: rgba(0, 0, 0, 0.5);
}
.widget-announcement-30 .w-annc30-prev:disabled,
.widget-announcement-30 .w-annc30-next:disabled {
opacity: 0.3;
cursor: default;
}
.widget-announcement-30 .w-annc30-prev:focus,
.widget-announcement-30 .w-annc30-next:focus {
outline: 2px solid #ff0492;
outline-offset: 2px;
}
</style>
<script>
$(document).ready(function() {
var subpartId = '{{subpart-id}}';
var $widget = $('[data-subpart-id="' + subpartId + '"]');
var $overflow = $widget.find('.w-annc30-overflow');
var $track = $widget.find('.w-annc30-track');
var $prevBtn = $widget.find('.w-annc30-prev');
var $nextBtn = $widget.find('.w-annc30-next');
var currentIndex = 0;
var isMobile = false;
function getItems() {
return $track.find('> .w-annc__item');
}
function goTo(index) {
var total = getItems().length;
if (total === 0) return;
// 循環:超出邊界時繞回
currentIndex = ((index % total) + total) % total;
var offset = currentIndex * $overflow.width();
$track.css('transform', 'translateX(-' + offset + 'px)');
// 循環模式不需要 disabled
$prevBtn.prop('disabled', false);
$nextBtn.prop('disabled', false);
}
function enableMobile() {
isMobile = true;
var $items = getItems();
var w = $overflow.width();
// 強制覆蓋 grid
$track.css({
'display' : 'flex',
'flex-wrap' : 'nowrap',
'transition' : 'transform 0.4s ease',
'margin' : '0',
'padding' : '0',
'list-style' : 'none',
'width' : ($items.length * w) + 'px'
});
$items.css({
'width' : w + 'px',
'min-width' : w + 'px',
'max-width' : w + 'px',
'flex-shrink' : '0',
'box-sizing' : 'border-box',
'float' : 'none',
'grid-area' : 'unset',
'position' : 'static',
'left' : 'auto',
'top' : 'auto',
'opacity' : '1',
'transform' : 'none',
'display' : 'block'
});
$prevBtn.show();
$nextBtn.show();
goTo(currentIndex);
}
function disableMobile() {
isMobile = false;
currentIndex = 0;
// 清除所有 inline style,還原桌機排版
$track.css({
'display' : '',
'flex-wrap' : '',
'transition' : '',
'transform' : '',
'margin' : '',
'padding' : '',
'width' : ''
});
getItems().css({
'width' : '',
'min-width' : '',
'max-width' : '',
'flex-shrink' : '',
'box-sizing' : '',
'float' : '',
'grid-area' : '',
'position' : '',
'left' : '',
'top' : '',
'opacity' : '',
'transform' : '',
'display' : ''
});
$prevBtn.hide();
$nextBtn.hide();
}
function checkResize() {
if ($(window).width() <= 768) {
enableMobile();
} else {
disableMobile();
}
}
$prevBtn.on('click', function() {
if (isMobile) goTo(currentIndex - 1);
});
$nextBtn.on('click', function() {
if (isMobile) goTo(currentIndex + 1);
});
var resizeTimer;
$(window).on('resize', function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(checkResize, 200);
});
// 初始化
setTimeout(checkResize, 150);
// 修正:清除 .w-annc__img-wrap a 的破損 title 造成的多餘文字節點
setTimeout(function() {
$widget.find('.w-annc__img-wrap a').each(function() {
$(this).contents().filter(function() {
return this.nodeType === 3 && this.nodeValue.trim() !== '';
}).remove();
// 只保留 img
var $img = $(this).find('img');
$(this).empty().append($img);
});
}, 300);
});
</script>

View File

@ -0,0 +1,25 @@
<div class="w-annc widget-announcement-7 widget-announcement-31">
<h3 class="w-annc__widget-title">
<span>{{widget-title}}</span>
</h3>
<ul class="w-annc__list" data-level="0" data-list="announcements">
<li class="w-annc__item row">
<span class="w-annc__postdate-wrap col-sm-2" date-format="%Y-%m-%d">
<span class="w-annc__postdate">{{postdate}}</span>
</span>
<span class="w-annc__category-wrap col-sm-2">
<span class="w-annc__category">{{category}}</span>
</span>
<h4 class="w-annc__entry-title col-sm-8">
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label status {{status-class}}">{{status}}</span>
</span>
<a class="w-annc__title" href="{{link_to_show}}">{{title}}</a>
</h4>
</li>
</ul>
<div class="w-annc__more-wrap clearfix">
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多最新消息" : "More NEWS" %></a>
</div>
</div>

View File

@ -6,7 +6,7 @@
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多最新消息" : "More NEWS" %></a>
</div>
<ul class="w-annc__list row" data-level="0" data-list="announcements">
<li class="w-annc__item col-sm-3">
<li class="w-annc__item col-sm-4">
<div class="w-annc__item_inner">
<a href="{{link_to_show}}">
<div class="w-annc__img-wrap bullseye" style="position:relative">
@ -15,9 +15,6 @@
</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>
@ -27,6 +24,9 @@
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title" >{{title}}</span>
</h4>
@ -56,53 +56,8 @@
}
</style>
<script>
function combineul_{{subpart-id}}(){
var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
parents.each(function(i,v){
for(var i=1;i<$(v).find('ul.w-annc__list').length;i++)
$(v).find('ul.w-annc__list').eq(0).find('>li').eq(-1).after($(v).find('ul.w-annc__list').eq(i).html());
var ullength = $(v).find('ul.w-annc__list').length;
for(var i = 1;i < ullength;i++)
$(v).find('ul.w-annc__list').eq(-1).remove();
})
};
var num;
var lilength = $('[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item').length;
function reorganize_{{subpart-id}}(num){
combineul_{{subpart-id}}();
var parents = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').parent();
parents.each(function(i,v){
var lilength = $(v).find('li.w-annc__item').length;
var ul_length = Math.ceil(lilength/num);
for(var ii=1;ii< ul_length;ii++){
var clone_ul = $(v).find('ul.w-annc__list').eq(-1).clone();
clone_ul.empty();
clone_ul.removeClass("active");
clone_ul.css("display","");
$(v).find('ul.w-annc__list').eq(-1).after(clone_ul.prop("outerHTML"));
var lihtml="";
if(ii != (ul_length-1)){
for(var j=0;j<num;j++){
lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
};
}else{
for(var j=0;j< lilength - num *(ul_length-1) ;j++){
lihtml += $(v).find('li.w-annc__item').eq(ii*num+j).prop("outerHTML");
};
};
$(v).find('ul.w-annc__list').eq(-1).html(lihtml);
}
if(ul_length != 1 )
for(var i=0;i< lilength -num ; i++)
$(v).find('ul.w-annc__list').eq(0).find("li.w-annc__item").eq(num).remove();
})
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css('width','calc('+100/num+'% - '+20/20+'em)'); //20px=>li的margin
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list >li').css("float","left");
};
function clearNavTabsFilterStyle_{{subpart-id}}(){
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list > li').each(function(){
// 只移除不該有的 style,保留 display(由 nav_tabs_filter 控制)
var $li = $(this);
$li[0].style.removeProperty('width');
$li[0].style.removeProperty('position');
@ -130,46 +85,9 @@
$(window).resize(function(){
if(hasNavTabsFilter_{{subpart-id}}){
clearNavTabsFilterStyle_{{subpart-id}}();
return;
}
if($(window).width()>1024){
reorganize_{{subpart-id}}(4);
num=3;
}else if($(window).width()>576){
reorganize_{{subpart-id}}(2);
num=2;
}else{
reorganize_{{subpart-id}}(1);
num=1;
}
})
$(document).ready(function(){
if(hasNavTabsFilter_{{subpart-id}}){
setTimeout(clearNavTabsFilterStyle_{{subpart-id}}, 300);
// MutationObserver 持續監聽,防止外部 JS 重複加上 style
var targetUl = document.querySelector('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list');
if(targetUl){
var observer = new MutationObserver(function(mutations){
mutations.forEach(function(mutation){
if(mutation.type === 'attributes' && mutation.attributeName === 'style'){
clearNavTabsFilterStyle_{{subpart-id}}();
}
});
});
observer.observe(targetUl, { attributes: true, subtree: true, attributeFilter: ['style'] });
}
return;
}
if($(window).width()>1024){
reorganize_{{subpart-id}}(4);
num=3;
}else if($(window).width()>576){
reorganize_{{subpart-id}}(2);
num=2;
}else{
reorganize_{{subpart-id}}(1);
num=1;
}
})
setTimeout(function() {
$('.widget-announcement-4 .w-annc__item').removeAttr('tabindex');
}, 500);
</script>

View File

@ -20,9 +20,11 @@
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label status {{status-class}}">{{status}}</span>
</span>
<span class="w-annc__title">{{title}}</span>
<a class="w-annc__title" href="{{link_to_show}}">{{title}}</a>
</h4>
<p class="w-annc__subtitle">{{subtitle}}</p>
<div class="hashtagswrapper">{{orbithashtags}}</div>
{{widget_tags}}
</div>
</li>
</ul>

View File

@ -7,7 +7,7 @@
<dl>
<!--月份 1-->
<dt>{{date-head}}</dt>
<!--<dt>{{date-head}}</dt>-->
<!--左側文章 start-->
<div class="data" data-level="0" data-list="announcements">
@ -25,11 +25,10 @@
<div class="events-desc">{{subtitle}}</div>
<!--填入描述-->
</div>
<div class="Vivamore" style=" clear: both;">
<a class="btn btn-primary pull-right" href="{{link_to_show}}" style="display: block;">more </a>
</div>
</div>
<div class="events-footer">
<a class="i-annc__title" href="{{link_to_show}}">more </a>
</div>
<!--可填底部標題 或刪除-->
</div>
</dd>
</div>
@ -80,7 +79,6 @@
Timeline.prototype = {
//初始化
_init: function (_opt) {
//合併自訂參數與預設參數
var self = this;
self.options = $.extend(true, {}, Timeline.options, _opt);
@ -100,6 +98,10 @@
$(this).find('.row').first().show().siblings().hide();
});
// ✅ 初始狀態:全部顯示
self.target.find('.events-body').show();
self.target.find('.events-footer').show();
self.target.find('img').on('load', function () {
self.target.find('.events-body').each(function () {
var maxHeight = 0;
@ -108,7 +110,10 @@
maxHeight = $(this).height();
}
});
// 只在桌機才設固定高度,RWD 不設
if ($(window).width() > 768) {
$(this).find('.row').height(maxHeight);
}
});
});
},
@ -116,8 +121,18 @@
//綁定事件
_event: function () {
var self = this;
// ✅ 點任一 .events-header 展開/收合所有 .events-body
var allExpanded = false;
self.target.find('.events-header').click(function () {
$(this).siblings('.events-body').slideToggle().end().siblings('.events-footer').toggle();
allExpanded = !allExpanded;
if (allExpanded) {
self.target.find('.events-body').slideDown(300);
self.target.find('.events-footer').show();
} else {
self.target.find('.events-body').slideUp(300);
self.target.find('.events-footer').hide();
}
});
self.target.find('.events-footer li').click(function () {
@ -132,7 +147,6 @@
self.target.find('.events').hover(function () {
clearInterval(self.carouselInterval);
self.carouselInterval = null;
}, function () {
if (self.carouselInterval == undefined) {
self.carouselInterval = setInterval(function () {
@ -175,10 +189,32 @@
return this;
}
})(jQuery, window, document);
</script>
<script type="text/javascript">
$(function() {
setTimeout(function() {
$('.events-body .events-object').each(function() {
var $img = $(this);
// ✅ 已經是預設圖才隱藏
if ($img.attr('src') === '/assets/announcement-default.jpg' ||
$img.attr('src') === '/assets/announcement-default-2.jpg') {
$img.closest('.col-md-6').hide();
return;
}
// ✅ 監聽 onerror(圖片載入失敗時隱藏)
$img.on('error', function() {
$(this).closest('.col-md-6').hide();
});
});
}, 300);
});
jQuery(document).ready(function () {
jQuery('.VivaTimeline').vivaTimeline({carousel: true, carouselTime: 3000});
});
</script>
<script type="text/javascript">
<style>
.Vivamore{
display:block!important;
}
</style>

View File

@ -36,4 +36,5 @@ $('.i-annc__table').each(function(){
});
}
});;
$('.index-announcement-11 table.dataTable > tbody > tr.child').remove();
</script>

View File

@ -38,4 +38,5 @@ $('.i-annc__table').each(function(){
});
}
});;
$('.index-announcement-12 table.dataTable > tbody > tr.child').remove();
</script>

View File

@ -1,4 +1,4 @@
<div class="i-annc index-eventnews-13 {{display}}">
<div class="i-annc index-announcement-13 {{display}}">
<h3 class="i-annc__page-title"><span>{{page-title}}</span></h3>
<table class="i-annc__table table table-striped">
<thead>

View File

@ -35,5 +35,7 @@ $('.i-annc__table').each(function(){
autoWidth: false
});
}
});;
});
$('.index-announcement-15 table.dataTable > tbody > tr.child').remove();
</script>

View File

@ -5,8 +5,8 @@
<tr>
<th class="i-annc__th i-annc__th--date all" id='date'>{{date-head}}</th>
<th class="i-annc__th i-annc__th--title all" id='title'>{{title-head}}</th>
<th class="i-annc__th i-annc__th--links min-tablet" id='links'>{{link-head}}</th>
<th class="i-annc__th i-annc__th--files min-tablet" id='files'>{{file-head}}</th>
<th class="i-annc__th i-annc__th--links min-tablet" id='links'>{{link-head}}</th>
</tr>
</thead>
<tbody data-level="0" data-list="announcements">
@ -18,13 +18,6 @@
</span>
<a class="i-annc__title" href="{{link_to_show}}">{{title}}</a>
</td>
<td class="i-annc__links" headers='links'>
<ul data-list="bulletin_links" data-level="1">
<li>
<a class="i-annc__title" href="{{link_url}}">{{link_title}}</a>
</li>
</ul>
</td>
<td class="i-annc__files" headers='files'>
<ul data-list="bulletin_files" data-level="1">
<li>
@ -32,6 +25,13 @@
</li>
</ul>
</td>
<td class="i-annc__links" headers='links'>
<ul data-list="bulletin_links" data-level="1">
<li>
<a class="i-annc__title" href="{{link_url}}">{{link_title}}</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
@ -50,4 +50,38 @@ $('.i-annc__table').each(function(){
});
}
});;
$(function() {
setTimeout(function() {
var $linksTh = $('th#links');
if ($linksTh.length > 0 && $linksTh.text().trim() === '超連結') {
$linksTh.text('連結');
}
var $filesTh = $('th#files');
if ($filesTh.length > 0 && $filesTh.text().trim() === '檔案下載') {
$filesTh.text('檔案');
}
}, 300);
});
$('.index-announcement-16 table.dataTable > tbody > tr.child').remove();
$(function() {
setTimeout(function() {
// 原本的邏輯不動
var $linksTh = $('th#links');
if ($linksTh.length > 0 && $linksTh.text().trim() === '超連結') {
$linksTh.text('連結');
}
var $filesTh = $('th#files');
if ($filesTh.length > 0 && $filesTh.text().trim() === '檔案下載') {
$filesTh.text('檔案');
}
// ✅ 新增:把 th 文字寫入對應 td 的 data-label
var fileLabel = $('th#files').text().trim();
var linkLabel = $('th#links').text().trim();
$('.index-announcement-16 .i-annc__files').attr('data-label', fileLabel);
$('.index-announcement-16 .i-annc__links').attr('data-label', linkLabel);
}, 300);
});
</script>

View File

@ -2,30 +2,30 @@
<h3 class="i-annc__page-title"><span>{{page-title}}</span></h3>
<ul class="i-annc__list row" data-level="0" data-list="announcements">
<li class="i-annc__item rotate0">
<div class="i-annc__img-wrap bullseye">
<a href="{{link_to_show}}" alt="{{img_description}}" title="{{img_description}}">
<img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</a>
</div>
<div class="i-annc__content-wrap">
<div class="i-annc__meta">
<span class="i-annc__status-wrap" data-list="statuses" data-level="1">
<span class="i-annc__status label {{status-class}}">{{status}}</span>
</span>
<span class="i-annc__postdate-wrap" date-format="%Y-%m-%d">
<i class="fa-regular fa-calendar"></i>
<span class="i-annc__postdate">{{postdate}}</span>
</span>
<span class="i-annc__category-wrap">
<i class="fa-solid fa-list"></i>
<span class="i-annc__category">{{category}}</span>
</span>
<a href="{{link_to_show}}" title="{{img_description}}" style="display: block;">
<div class="i-annc__img-wrap bullseye">
<img class="i-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<h4 class="i-annc__entry-title">
<a class="i-annc__title" href="{{link_to_show}}">{{title}}</a>
</h4>
<p class="i-annc__subtitle">{{subtitle}}</p>
</div>
<div class="i-annc__content-wrap">
<div class="i-annc__meta">
<span class="i-annc__status-wrap" data-list="statuses" data-level="1">
<span class="i-annc__status label {{status-class}}">{{status}}</span>
</span>
<span class="i-annc__postdate-wrap" date-format="%Y-%m-%d">
<i class="fa-regular fa-calendar"></i>
<span class="i-annc__postdate">{{postdate}}</span>
</span>
<span class="i-annc__category-wrap">
<i class="fa-solid fa-list"></i>
<span class="i-annc__category">{{category}}</span>
</span>
</div>
<h4 class="i-annc__entry-title">
<span class="i-annc__title">{{title}}</span>
</h4>
<p class="i-annc__subtitle">{{subtitle}}</p>
</div>
</a>
</li>
</ul>
</div>

View File

@ -4,14 +4,14 @@
<li class="i-annc__item">
<div class="i-annc__content-wrap">
<div class=" row">
<div class="i-annc__meta col-sm-2">
<div class="i-annc__meta col-sm-1">
<span class="i-annc__postdate-wrap " date-format="%Y-%m-%d">
<span class="i-annc__postdate">{{postdate}}</span>
</span>
</div>
<div class="col-sm-10">
<div class="col-sm-11">
<span class="i-annc__status-wrap" data-list="statuses" data-level="1">
<span class="i-annc__status label status {{status-class}}">{{status}}</span>
</span>

View File

@ -1,392 +1,398 @@
{
"frontend": [
{
"filename": "annc_index1",
"name": {
"zh_tw": "1. 標準標題列表-1 ( 模組標題, 類別, 狀態, 標題, 日期 )",
"en": "1. Standard Title List-1 (widget-title, category, status, title, postdate)"
},
"thumbnail": "annc_index1_thumbs.png"
},
{
"filename": "annc_index2",
"name": {
"zh_tw": "2. 標準標題列表-2 ( 模組標題, 日期, 狀態, 標題, 類別 )",
"en": "2. Standard Title List-2 (widget-title, postdate, status, title, category)"
},
"thumbnail": "annc_index2_thumbs.png"
},
{
"filename": "annc_index3",
"name": {
"zh_tw": "3. 精簡標題列表-1 ( 模組標題, 狀態, 標題, 日期 )",
"en": "3. Simple Title List-1 (widget-title, status, title, postdate)"
},
"thumbnail": "annc_index3_thumbs.png"
},
{
"filename": "annc_index4",
"name": {
"zh_tw": "4. 精簡標題列表-2 ( 模組標題, 日期, 狀態, 標題 )",
"en": "4. Simple Title List-2 (widget-title, postdate, status, title)"
},
"thumbnail": "annc_index4_thumbs.png"
},
{
"filename": "annc_index5",
"name": {
"zh_tw": "5. 左圖右文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "5. Balanced Image + Text(Left) (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_index5_thumbs.png"
},
{
"filename": "annc_index6",
"name": {
"zh_tw": "6. 右圖左文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "6. Balanced Image + Text(Right) (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_index6_thumbs.png"
},
{
"filename": "annc_index7",
"name": {
"zh_tw": "7. 三欄圖文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "7. 3-Column Standard Image + Text (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_index7_thumbs.png"
},
{
"filename": "annc_index8",
"name": {
"zh_tw": "8. 標準文字列表 ( 模組標題, 日期, 類別, 狀態, 標題, 副標題 )",
"en": "8. Standard Text List (widget-title, postdate, category, status, title, subtitle)"
"zh_tw": "P1. 文字標題副標題-標準 ( 模組標題, 日期, 類別, 狀態, 標題, 副標題 )",
"en": "P1. Standard Text List (widget-title, postdate, category, status, title, subtitle)"
},
"thumbnail": "annc_index8_thumbs.png"
},
{
"filename": "annc_index9",
"name": {
"zh_tw": "9. 標準文字列表三欄 ( 模組標題, 日期, 類別, 狀態, 標題, 副標題 )",
"en": "9. 3-Column Standard Text List (widget-title, postdate, category, status, title, subtitle)"
"zh_tw": "P2. 文字標題副標題-三欄 ( 模組標題, 日期, 類別, 狀態, 標題, 副標題 )",
"en": "P2. 3-Column Standard Text List (widget-title, postdate, category, status, title, subtitle)"
},
"thumbnail": "annc_index9_thumbs.png"
},
{
"filename": "annc_index10",
"filename": "annc_index21",
"name": {
"zh_tw": "10. 連結 + 附件表格列表 ( 模組標題, 類別, 狀態, 標題 )",
"en": "10. Table List including Links and attachments (widget-title, category, status, title, view-count)"
"zh_tw": "P1-3. 文字標題副標題-標準3日曆Icon日期 ( 模組標題, 日期, 類別, 狀態, 標題, 副標題 )",
"en": "P1-3. Calendar Icon Date Standard Text List (widget-title, postdate, category, status, title, subtitle)"
},
"thumbnail": "annc_index10_thumbs.png"
"thumbnail": "annc_index8_thumbs.png"
},
{
"filename": "annc_index1",
"name": {
"zh_tw": "L1. 條列式-標準1 ( 模組標題, 類別, 狀態, 標題, 日期 )",
"en": "L1. Standard Title List-1 (widget-title, category, status, title, postdate)"
},
"thumbnail": "annc_index1_thumbs.png"
},
{
"filename": "annc_index2",
"name": {
"zh_tw": "L1-2. 條列式-標準2 ( 模組標題, 日期, 狀態, 標題, 類別 )",
"en": "L1-2. Standard Title List-2 (widget-title, postdate, status, title, category)"
},
"thumbnail": "annc_index2_thumbs.png"
},
{
"filename": "annc_index3",
"name": {
"zh_tw": "L2. 條列式-精簡1 ( 模組標題, 狀態, 標題, 日期 )",
"en": "L2. Simple Title List-1 (widget-title, status, title, postdate)"
},
"thumbnail": "annc_index3_thumbs.png"
},
{
"filename": "annc_index4",
"name": {
"zh_tw": "L2-2. 條列式-精簡2 ( 模組標題, 日期, 狀態, 標題 )",
"en": "L2-2. Simple Title List-2 (widget-title, postdate, status, title)"
},
"thumbnail": "annc_index4_thumbs.png"
},
{
"filename": "annc_index11",
"name": {
"zh_tw": "11. 標準表格列表-1 ( 模組標題, 日期, 狀態, 標題, 類別 )",
"en": "11. Standard Table List-1 (widget-title, postdate, status, title, category)"
"zh_tw": "T1. 表格式-標準1 ( 模組標題, 日期, 狀態, 標題, 類別 )",
"en": "T1. Standard Table List-1 (widget-title, postdate, status, title, category)"
},
"thumbnail": "annc_index11_thumbs.png"
},
{
"filename": "annc_index12",
"name": {
"zh_tw": "12. 標準表格列表-2 ( 模組標題, 日期, 狀態, 標題, 類別, 瀏覽人次 )",
"en": "12. Standard Table List-2 (widget-title, postdate, status, title, category, view-count)"
"zh_tw": "T1-2. 表格式-標準2 ( 模組標題, 日期, 狀態, 標題, 類別, 瀏覽人次 )",
"en": "T1-2. Standard Table List-2 (widget-title, postdate, status, title, category, view-count)"
},
"thumbnail": "annc_index12_thumbs.png"
},
{
"filename": "annc_index17",
"name": {
"zh_tw": "T1-3. 表格式+張貼人-標準3 ( 類別, 標題, 日期, 張貼人 )",
"en": "T1-3. Standard Table List with Poster ( category, title, postdate, department)"
},
"thumbnail": "annc_index1_thumbs.png"
},
{
"filename": "annc_index13",
"name": {
"zh_tw": "13. 精簡表格列表-1 ( 模組標題, 狀態, 標題, 日期 )",
"en": "13. Simple Table List (widget-title, status, title, postdate)"
"zh_tw": "T2. 表格式-精簡1 ( 模組標題, 狀態, 標題, 日期 )",
"en": "T2. Simple Table List-1 (widget-title, status, title, postdate)"
},
"thumbnail": "annc_index13_thumbs.png"
},
{
"filename": "annc_index14",
"name": {
"zh_tw": "14. 精簡表格列表-2 ( 模組標題, 日期, 狀態, 標題 )",
"en": "14. Simple Table List (widget-title, postdate, status, title)"
"zh_tw": "T2-2. 表格式-精簡2 ( 模組標題, 日期, 狀態, 標題 )",
"en": "T2-2. Simple Table List-2 (widget-title, postdate, status, title)"
},
"thumbnail": "annc_index14_thumbs.png"
},
{
"filename": "annc_index15",
"name": {
"zh_tw": "15. 精簡表格列表-3 ( 模組標題, 日期, 狀態, 標題, 瀏覽人次 )",
"en": "15. Simple Table List (widget-title, postdate, status, title, view-count)"
"zh_tw": "T2-3. 表格式-精簡3 ( 模組標題, 日期, 狀態, 標題, 瀏覽人次 )",
"en": "T2-3. Simple Table List-3 (widget-title, postdate, status, title, view-count)"
},
"thumbnail": "annc_index15_thumbs.png"
},
{
"filename": "annc_index16",
"name": {
"zh_tw": "16. 連結 + 附件表格列表 ( 模組標題, 類別, 狀態, 標題 )",
"en": "16. Table List including Links and attachments (widget-title, category, status, title, view-count)"
"zh_tw": "T3. 表格式-含附件及連結 ( 模組標題, 類別, 狀態, 標題 )",
"en": "T3. Table List including Links and Attachments (widget-title, category, status, title, view-count)"
},
"thumbnail": "annc_index16_thumbs.png"
},
{
"filename": "annc_index17",
"filename": "annc_index5",
"name": {
"zh_tw": "17. 標準標題列表-1A ( 類別, 標題, 日期, 張貼人 )",
"en": "1. Standard Title List-1 ( category, title, postdate, department)"
"zh_tw": "C1. 封面圖文-左圖右文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "C1. Cover Image + Text - Left Image (Left) (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_index1_thumbs.png"
"thumbnail": "annc_index5_thumbs.png"
},
{
"filename": "annc_index18",
"filename": "annc_index6",
"name": {
"zh_tw": "18. 五欄圖文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "18. 5-Column Standard Image + Text (widget-title, image, status, postdate, category, title, subtitle)"
"zh_tw": "C2. 封面圖文-右圖左文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "C2. Cover Image + Text - Right Image (Right) (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_index6_thumbs.png"
},
{
"filename": "annc_index7",
"name": {
"zh_tw": "C3. 封面圖文-三欄式標準 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "C3. Cover Image + Text - 3 Column Standard (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_index7_thumbs.png"
},
{
"filename": "annc_index19",
"name": {
"zh_tw": "19. 四欄圖文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "19. 4-Column Standard Image + Text (widget-title, image, status, postdate, category, title, subtitle)"
"zh_tw": "C4. 封面圖文-四欄式標準 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "C4. Cover Image + Text - 4 Column Standard (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_index7_thumbs.png"
},
{
"filename": "annc_index20",
"filename": "annc_index18",
"name": {
"zh_tw": "20. 標準文字列表(日期英文) ( 模組標題, 日期, 類別, 狀態, 標題, 副標題 )",
"en": "20. Standard Text List (widget-title, postdate, category, status, title, subtitle)"
"zh_tw": "C5. 封面圖文-五欄式翻牌 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "C5. Cover Image + Text - 5 Column Flip (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_index8_thumbs.png"
"thumbnail": "annc_index7_thumbs.png"
},
{
"filename": "annc_index21",
"filename": "annc_index10",
"name": {
"zh_tw": "21. 日曆樣式標準文字列表 ( 模組標題, 日期, 類別, 狀態, 標題, 副標題 )",
"en": "21. calander style Standard Text List (widget-title, postdate, category, status, title, subtitle)"
"zh_tw": "Z1. 交錯式-時間軸 ( 模組標題, 類別, 狀態, 標題 )",
"en": "Z1. Staggered - Timeline (widget-title, category, status, title, view-count)"
},
"thumbnail": "annc_index8_thumbs.png"
}
,
{
"filename": "annc_index22",
"name": {
"zh_tw": "22. 日曆樣式2標準文字列表 ( 模組標題, 日期, 類別, 狀態, 標題, 副標題 )",
"en": "22. calander style2 Standard Text List (widget-title, postdate, category, status, title, subtitle)"
},
"thumbnail": "annc_index8_thumbs.png"
"thumbnail": "annc_index10_thumbs.png"
}
],
"widgets": [
{
"filename": "annc_widget1",
"name": {
"zh_tw": "1. 標準圖文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "1. Standard Image + Text (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget1_thumbs.png"
},
{
"filename": "annc_widget2",
"name": {
"zh_tw": "2. 左圖右文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "2. Balanced Image + Text(Left) (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget2_thumbs.png"
},
{
"filename": "annc_widget3",
"name": {
"zh_tw": "3. 右圖左文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "3. Balanced Image + Text(Right) (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget3_thumbs.png"
},
{
"filename": "annc_widget4",
"name": {
"zh_tw": "4. 三欄圖文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "4. 3-Column Standard Image + Text (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget4_thumbs.png"
},
{
"filename": "annc_widget15",
"name": {
"zh_tw": "15. 輪波三欄圖文-slide ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "15. carousel3-3-Column Standard Image + Text -slide(widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget15_thumbs.png"
},
{
"filename": "annc_widget19",
"name": {
"zh_tw": "19. 輪波兩欄文-slide ( 模組標題, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "19. 2-Column Standard Text -slide(widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget19_thumbs.png"
},
{
"filename": "annc_widget20",
"name": {
"zh_tw": "20. 三欄圖文型態2 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "20. 3.2-Column Standard Image + Text (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget20_thumbs.png"
},
{
"filename": "annc_widget21",
"name": {
"zh_tw": "21. 輪波三欄圖文型態2-slide ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "21. carousel3.2-3-Column Standard Image + Text -slide(widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget21_thumbs.png"
},
{
"filename": "annc_widget22",
"name": {
"zh_tw": "22. 輪波8欄文原始-slide ( 模組標題, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "22. 8-Column Standard Text -slide(widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget22_thumbs.png"
},
{
"filename": "annc_widget25",
"name": {
"zh_tw": "25. 2/3輪波三欄圖文型態2-slide ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "25. 2/3carousel3.2-3-Column Standard Image + Text -slide(widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget21_thumbs.png"
},
{
"filename": "annc_widget5",
"name": {
"zh_tw": "5. 標準文字列表 ( 模組標題, 日期, 類別, 狀態, 標題, 副標題 )",
"en": "5. Standard Text List (widget-title, postdate, category, status, title, subtitle)"
"zh_tw": "P1. 文字標題副標-標準 ( 模組標題, 日期, 類別, 狀態, 標題, 副標題 )",
"en": "P1. Standard Text List (widget-title, postdate, category, status, title, subtitle)"
},
"thumbnail": "annc_widget5_thumbs.png"
},
{
"filename": "annc_widget6",
"name": {
"zh_tw": "6. 標準標題列表-1 ( 模組標題, 類別, 狀態, 標題, 日期 )",
"en": "6. Standard Title List-1 (widget-title, category, status, title, postdate)"
"zh_tw": "L1. 條列式-標準1 ( 模組標題, 類別, 狀態, 標題, 日期 )",
"en": "L1. Standard Title List-1 (widget-title, category, status, title, postdate)"
},
"thumbnail": "annc_widget6_thumbs.png"
},
{
"filename": "annc_widget7",
"name": {
"zh_tw": "7. 標準標題列表-2 ( 模組標題, 日期, 狀態, 標題, 類別 )",
"en": "7. Standard Title List-2 (widget-title, postdate, status, title, category)"
"zh_tw": "L1-2. 條列式-標準2 ( 模組標題, 日期, 狀態, 標題, 類別 )",
"en": "L1-2. Standard Title List-2 (widget-title, postdate, status, title, category)"
},
"thumbnail": "annc_widget7_thumbs.png"
},
{
"filename": "annc_widget8",
"filename": "annc_widget31",
"name": {
"zh_tw": "8. 標準表格列表-1 ( 模組標題, 類別, 狀態, 標題, 日期 )",
"en": "8. Standard Table List-1 (widget-title, category, status, title, postdate)"
"zh_tw": "L1-3. 條列式-標準3 ( 模組標題, 日期 類別,, 狀態, 標題 )",
"en": "L1-3. Standard Title List-3 (widget-title, postdate, category, status, title)"
},
"thumbnail": "annc_widget8_thumbs.png"
},
{
"filename": "annc_widget9",
"name": {
"zh_tw": "9. 標準表格列表-2 ( 模組標題, 日期, 狀態, 標題, 類別 )",
"en": "9. Standard Table List-2 (widget-title, postdate, status, title, category)"
},
"thumbnail": "annc_widget9_thumbs.png"
"thumbnail": "annc_widget7_thumbs.png"
},
{
"filename": "annc_widget10",
"name": {
"zh_tw": "10. 精簡標題列表-1 ( 模組標題, 狀態, 標題, 日期 )",
"en": "10. Simple Title List-1 (widget-title, status, title, postdate)"
"zh_tw": "L2. 條列式-精簡1 ( 模組標題, 狀態, 標題, 日期 )",
"en": "L2. Simple Title List-1 (widget-title, status, title, postdate)"
},
"thumbnail": "annc_widget10_thumbs.png"
},
{
"filename": "annc_widget11",
"name": {
"zh_tw": "11. 精簡標題列表-2 ( 模組標題, 日期, 狀態, 標題 )",
"en": "11. Simple Title List-2 (widget-title, postdate, status, title)"
"zh_tw": "L2-2. 條列式-精簡2 ( 模組標題, 日期, 狀態, 標題 )",
"en": "L2-2. Simple Title List-2 (widget-title, postdate, status, title)"
},
"thumbnail": "annc_widget11_thumbs.png"
},
{
"filename": "annc_widget17",
"name": {
"zh_tw": "L2-3. 條列式-精簡2含搜尋 ( 模組標題, 日期, 狀態, 標題 )",
"en": "L2-3. Simple Title List-2 with Search (widget-title, postdate, status, title), including search"
},
"thumbnail": "annc_widget11_thumbs.png"
},
{
"filename": "annc_widget8",
"name": {
"zh_tw": "T1. 表格式-標準1 ( 模組標題, 類別, 狀態, 標題, 日期 )",
"en": "T1. Standard Table List-1 (widget-title, category, status, title, postdate)"
},
"thumbnail": "annc_widget8_thumbs.png"
},
{
"filename": "annc_widget9",
"name": {
"zh_tw": "T1-2. 表格式-標準2 ( 模組標題, 日期, 狀態, 標題, 類別 )",
"en": "T1-2. Standard Table List-2 (widget-title, postdate, status, title, category)"
},
"thumbnail": "annc_widget9_thumbs.png"
},
{
"filename": "annc_widget12",
"name": {
"zh_tw": "12. 精簡表格列表-1 ( 模組標題, 狀態, 標題, 日期 )",
"en": "12. Simple Table List (widget-title, status, title, postdate)"
"zh_tw": "T2. 表格式-精簡1 ( 模組標題, 狀態, 標題, 日期 )",
"en": "T2. Simple Table List-1 (widget-title, status, title, postdate)"
},
"thumbnail": "annc_widget12_thumbs.png"
},
{
"filename": "annc_widget13",
"name": {
"zh_tw": "13. 精簡表格列表-2 ( 模組標題, 日期, 狀態, 標題 )",
"en": "13. Simple Table List (widget-title, postdate, status, title)"
"zh_tw": "T2-2. 表格式-精簡2 ( 模組標題, 日期, 狀態, 標題 )",
"en": "T2-2. Simple Table List-2 (widget-title, postdate, status, title)"
},
"thumbnail": "annc_widget13_thumbs.png"
},
{
"filename": "annc_widget14",
"filename": "annc_widget1",
"name": {
"zh_tw": "14. 一圖 + 標題列表 ( 模組標題, 圖片, 狀態, 標題, 日期 )",
"en": "14. 1 Image + Title List (widget-title, image, status, title, postdate)"
},
"thumbnail": "annc_widget14_thumbs.png"
},
{
"filename": "annc_widget16",
"name": {
"zh_tw": "16. 單欄圖文輪播 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題 )",
"en": "16. Image + Text slide (widget-title, image, status, postdate, category, title)"
"zh_tw": "C1. 封面圖文-單欄 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "C1. Cover Image + Text - Single Column (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget1_thumbs.png"
},
{
"filename": "annc_widget17",
"filename": "annc_widget2",
"name": {
"zh_tw": "17. 含搜尋功能之精簡標題列表-2 ( 模組標題, 日期, 狀態, 標題 )",
"en": "17. Simple Title List-2 (widget-title, postdate, status, title), including search"
"zh_tw": "C2. 封面圖文-左圖右文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "C2. Cover Image + Text - Left Image (Left) (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget11_thumbs.png"
"thumbnail": "annc_widget2_thumbs.png"
},
{
"filename": "annc_widget3",
"name": {
"zh_tw": "C2-2. 封面圖文-右圖左文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "C2-2. Cover Image + Text - Right Image (Right) (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget3_thumbs.png"
},
{
"filename": "annc_widget4",
"name": {
"zh_tw": "C3. 封面圖文-三欄式標準 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "C3. Cover Image + Text - 3 Column Standard (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget4_thumbs.png"
},
{
"filename": "annc_widget18",
"name": {
"zh_tw": "18. 三欄圖文精簡版 ( 模組標題, 標題, 副標題(只顯示15字) )",
"en": "18. 3-Column Standard Image + Text Lite (widget-title, title, subtitle(only display 15 words))"
"zh_tw": "C3-2. 封面圖文-三欄式圖精簡 ( 模組標題, 標題, 副標題(只顯示15字) )",
"en": "C3-2. Cover Image + Text - 3 Column Lite (widget-title, title, subtitle(only display 15 words))"
},
"thumbnail": "annc_widget18_thumbs.png"
},
{
"filename": "annc_widget23",
"filename": "annc_widget20",
"name": {
"zh_tw": "23.二四欄圖文型態 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "23. 2-4-Column Standard Image + Text (widget-title, image, status, postdate, category, title, subtitle)"
"zh_tw": "C3-2. 封面圖文-三欄式圖文重疊 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "C3-2. Cover Image + Text - 3 Column Overlap (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget23_thumbs.png"
"thumbnail": "annc_widget20_thumbs.png"
},
{
"filename": "annc_widget16",
"name": {
"zh_tw": "S1. 輪播單欄圖文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題 )",
"en": "S1. Carousel Single Column Image + Text (widget-title, image, status, postdate, category, title)"
},
"thumbnail": "annc_widget1_thumbs.png"
},
{
"filename": "annc_widget19",
"name": {
"zh_tw": "S2. 輪播文字標題副標-兩欄 ( 模組標題, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "S2. Carousel Text Title Subtitle - 2 Column (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget19_thumbs.png"
},
{
"filename": "annc_widget28",
"name": {
"zh_tw": "S2-2. 輪播文字標題副標-三欄 ( 模組標題, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "S2-2. Carousel Text Title Subtitle - 3 Column (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget19_thumbs.png"
},
{
"filename": "annc_widget15",
"name": {
"zh_tw": "S3. 輪播圖文-三欄 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "S3. Carousel Image + Text - 3 Column (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget15_thumbs.png"
},
{
"filename": "annc_widget21",
"name": {
"zh_tw": "S3-2. 輪播圖文-三欄圖文重疊 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "S3-2. Carousel Image + Text - 3 Column Overlap (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget21_thumbs.png"
},
{
"filename": "annc_widget22",
"name": {
"zh_tw": "S4. 輪播8則文字標題副標-兩欄四列 ( 模組標題, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "S4. Carousel 8 Text Title Subtitle - 2 Col 4 Row (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget22_thumbs.png"
},
{
"filename": "annc_widget27",
"name": {
"zh_tw": "S4-2. 輪播9則文字標題副標-三欄三列 ( 模組標題, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "S4-2. Carousel 9 Text Title Subtitle - 3 Col 3 Row (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget22_thumbs.png"
},
{
"filename": "annc_widget14",
"name": {
"zh_tw": "Z1. 交錯式-一圖+標題列表 ( 模組標題, 圖片, 狀態, 標題, 日期 )",
"en": "Z1. Staggered - 1 Image + Title List (widget-title, image, status, title, postdate)"
},
"thumbnail": "annc_widget14_thumbs.png"
},
{
"filename": "annc_widget24",
"name": {
"zh_tw": "24. 長短兩欄圖文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "24. longshort2-Column Standard Image + Text (widget-title, image, status, postdate, category, title, subtitle)"
"zh_tw": "Z2. 交錯式圖文重疊-兩欄長短交錯 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "Z2. Staggered Overlap - 2 Column Long Short (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget24_thumbs.png"
},
{
"filename": "annc_widget23",
"name": {
"zh_tw": "Z3. 交錯式圖文-上二欄下四欄 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "Z3. Staggered Image + Text - Top 2 Bottom 4 (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget23_thumbs.png"
},
{
"filename": "annc_widget30",
"name": {
"zh_tw": "Z4. 交錯式圖文-三欄第一欄放大 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "Z4. Staggered Image + Text - 3 Col First Enlarged (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget26_thumbs.png"
},
{
"filename": "annc_widget26",
"name": {
"zh_tw": "26.一長其他短圖文 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "26. onelong anothershort-Column Standard Image + Text (widget-title, image, status, postdate, category, title, subtitle)"
"zh_tw": "Z4-2. 交錯式圖文重疊-三欄第一欄放大 ( 模組標題, 圖片, 狀態, 日期, 類別, 標題, 副標題 )",
"en": "Z4-2. Staggered Overlap - 3 Col First Enlarged (widget-title, image, status, postdate, category, title, subtitle)"
},
"thumbnail": "annc_widget26_thumbs.png"
}
]
}
}

View File

@ -12,8 +12,6 @@
margin-right: 2em;
}
.show-announcement{
max-width: 800px;
margin: auto;
z-index: 1;
position: relative;
}
@ -30,13 +28,14 @@
<i class="fa fa-male"></i>
<span class="s-annc__author">{{update_user}}</span>
</li>
<li class="orbithashtags">{{orbithashtags}}</li>
<li class="s-annc__tag-wrap s-annc__meta--item ">
<i class="fa fa-tags"></i>
<span data-list="tags" data-level="0">
<a href="{{url}}"><span class="s-annc__tag label label-default">{{tag}}</span></a>
</span>
</li>
{{orbithashtags}}
</ul>
<section class="s-annc__post-wrap">
@ -50,16 +49,15 @@
<div id="sub_anncs_list">{{sub_anncs_text}}</div>
<ul class="s-annc__related-wrap list-unstyled no-print">
<li class="s-annc__related-file">
<i class="fa fa-fw fa-paperclip"></i>
<h3 class="i-annc__page-title related-file-title"><span>附件檔案</span></h3>
<div class="s-annc__related-file-list" data-list="bulletin_files" data-level="0">
<a class="s-annc__flie-title btn btn-default btn-sm" href="{{file_url}}">{{file_title}}</a>
<a class="s-annc__flie-title btn btn-default btn-sm" href="{{file_url}}"><i class="fa fa-fw fa-paperclip"></i>{{file_title}}</a>
</div>
</li>
<li class="s-annc__related-link">
<i class="fa fa-fw fa-link"></i>
<h3 class="i-annc__page-title related-link-title"><span>參考連結</span></h3>
<div class="s-annc__related-link-list" data-list="bulletin_links" data-level="0">
<a class="s-annc__link-title btn btn-default btn-sm" href="{{link_url}}" target="_blank">{{link_title}}</a>
<a class="s-annc__link-title btn btn-default btn-sm" href="{{link_url}}" target="_blank"><i class="fa fa-fw fa-link"></i>{{link_title}}</a>
</div>
</li>
</ul>
@ -87,4 +85,25 @@
hideEmptyEl($('.s-annc__link-title'), $('.s-annc__related-link'));
$("img[src='']").remove();
}(jQuery));
setTimeout(function() {
if ($('.carousel_images').find('.w-ba-banner').length === 0) {
$('.carousel_images').addClass('carousel_images3');
}
}, 300);
$(function() {
var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
var isEn = pageLang.startsWith('en');
if (!isEn) return;
var $fileTitle = $('.related-file-title span');
if ($fileTitle.text().trim() === '附件檔案') {
$fileTitle.text('Attachment');
}
var $linkTitle = $('.related-link-title span');
if ($linkTitle.text().trim() === '參考連結') {
$linkTitle.text('Reference Link');
}
});
</script>

View File

@ -17,8 +17,7 @@
<dl class="i-archive__file-list" data-list="files" data-level="2">
<dd class="i-archive__file-wrap">
<i class="fa-solid fa-file"></i>
<a class="i-archive__file-name" href="{{file-url}}" target="{{target}}" title="{{file-name}}">{{file-name}}</a>
<a href="{{file-url}}" class="i-archive-files-item" target="_blank" data-bs-toggle="tooltip" data-placement="bottom" title="{{file-name}}"><span class="label label-primary">{{file-type}}</span></a>
<a class="i-archive__file-name" href="{{file-url}}" target="{{target}}" title="{{file-name}}">{{file-name}}<span class="label label-primary">{{file-type}}</span></a>
</dd>
</dl>
</div>

View File

@ -26,8 +26,7 @@
</div>
<div class="i-archive-files-list col-sm-12" data-list="files" data-level="2">
<dd>
<a href="{{file-url}}" class="i-archive-files-item" target="{{target}}" title="{{file-name}}">{{file-name}}</a>
<a href="{{file-url}}" class="i-archive-files-item" target="_blank" data-bs-toggle="tooltip" data-placement="bottom" title="{{file-name}}"><span class="label label-primary">{{file-type}}</span></a>
<a class="i-archive__file-name" href="{{file-url}}" target="{{target}}" title="{{file-name}}">{{file-name}}<span class="label label-primary">{{file-type}}</span></a>
</dd>
</div>
</div>

View File

@ -17,8 +17,7 @@
<dl class="i-archive__file-list" data-list="files" data-level="2">
<dd class="i-archive__file-wrap">
<i class="fa-solid fa-file"></i>
<a class="i-archive__file-name" href="{{file-url}}" target="{{target}}" title="{{file-name}}">{{file-name}}</a>
<a href="{{file-url}}" class="i-archive-files-item" target="_blank" data-bs-toggle="tooltip" data-placement="bottom" title="{{file-name}}"><span class="label label-primary">{{file-type}}</span></a>
<a class="i-archive__file-name" href="{{file-url}}" target="{{target}}" title="{{file-name}}">{{file-name}}<span class="label label-primary">{{file-type}}</span></a>
</dd>
</dl>
</div>

View File

@ -26,8 +26,7 @@
</div>
<div class="i-archive-files-list col-sm-9" data-list="files" data-level="2">
<dd>
<a href="{{file-url}}" class="i-archive-files-item" target="{{target}}" title="{{file-name}}">{{file-name}}</a>
<a href="{{file-url}}" class="i-archive-files-item" target="_blank" data-bs-toggle="tooltip" data-placement="bottom" title="{{file-name}}"><span class="label label-primary">{{file-type}}</span></a>
<a class="i-archive__file-name" href="{{file-url}}" target="{{target}}" title="{{file-name}}">{{file-name}}<span class="label label-primary">{{file-type}}</span></a>
</dd>
</div>
</div>

View File

@ -15,8 +15,7 @@
</dt>
<dl class="i-archive__file-list" data-list="files" data-level="2">
<dd class="i-archive__file-wrap">
<a class="i-archive__file-name" href="{{file-url}}" target="{{target}}" title="{{file-name}}">{{file-name}}</a>
<a href="{{file-url}}" class="i-archive-files-item" target="_blank" data-bs-toggle="tooltip" data-placement="bottom" title="{{file-name}}"><span class="label label-primary">{{file-type}}</span></a>
<a class="i-archive__file-name" href="{{file-url}}" target="{{target}}" title="{{file-name}}">{{file-name}}<span class="label label-primary">{{file-type}}</span></a>
</dd>
</dl>
</div>

View File

@ -23,8 +23,7 @@
</span>
<span class="description" style="clear: both;widivh: 100%;position: relative;display: block;">{{description}}</span>
<dd>
<a href="{{file-url}}" class="i-archive-files-item" target="{{target}}" title="{{file-name}}">{{file-name}}</a>
<a href="{{file-url}}" class="i-archive-files-item" target="_blank" data-bs-toggle="tooltip" data-placement="bottom" title="{{file-name}}"><span class="label label-primary">{{file-type}}</span></a>
<a class="i-archive__file-name" href="{{file-url}}" target="{{target}}" title="{{file-name}}">{{file-name}}<span class="label label-primary">{{file-type}}</span></a>
</dd>
</div>
</div>

View File

@ -18,8 +18,7 @@
<dl class="i-archive__file-list" data-list="files" data-level="2">
<dd class="i-archive__file-wrap">
<i class="fa-solid fa-file"></i>
<a class="i-archive__file-name" href="{{file-url}}" target="{{target}}" title="{{file-name}}">{{file-name}}</a>
<a href="{{file-url}}" class="i-archive-files-item" target="_blank" data-bs-toggle="tooltip" data-placement="bottom" title="{{file-name}}"><span class="label label-primary">{{file-type}}</span></a>
<a class="i-archive__file-name" href="{{file-url}}" target="{{target}}" title="{{file-name}}">{{file-name}}<span class="label label-primary">{{file-type}}</span></a>
</dd>
</dl>
</div>

View File

@ -5,7 +5,7 @@
<ul class="w-annc__list" data-level="0" data-list="custom_announcements">
<li class="w-annc__item">
<div class="w-annc__img-wrap bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__meta">
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">

View File

@ -12,7 +12,7 @@
<ul class="w-annc__list row" data-level="0" data-list="custom_announcements">
<li class="w-annc__item col-md-4">
<div class="w-annc__img-wrap bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap">
<div class="w-annc__meta">

View File

@ -27,7 +27,7 @@
<div class="w-annc__item">
<div class="w-annc__img-wrap">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap">
<div class="w-annc__meta">

View File

@ -9,7 +9,7 @@
<li class="w-annc__item col-md-4">
<div class="w-annc__img-wrap">
<a href="{{link_to_show}}" title="{{title}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</a>
</div>
<div class="w-annc__content-wrap">

View File

@ -5,7 +5,7 @@
<ul class="w-annc__list" data-level="0" data-list="custom_announcements">
<li class="w-annc__item row">
<div class="w-annc__img-wrap col-sm-4 bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap col-sm-8">
<div class="w-annc__meta">

View File

@ -24,7 +24,7 @@
<p class="w-annc__subtitle">{{subtitle}}</p>
</div>
<div class="w-annc__img-wrap col-sm-4 bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
</li>
</ul>

View File

@ -8,7 +8,7 @@
<ul class="w-annc__list row" data-level="0" data-list="custom_announcements">
<li class="w-annc__item col-md-4">
<div class="w-annc__img-wrap bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__content-wrap">
<div class="w-annc__meta">

View File

@ -7,7 +7,7 @@
}
</style>
<article class="s-annc show-announcement">
<h1 class="s-annc__show-title">{{title}}</h1>
<h3 class="s-annc__show-title">{{title}}</h3>
<ul class="s-annc__meta-wrap list-unstyled no-print">
<li class="s-annc__date-wrap s-annc__meta--item">

View File

@ -5,7 +5,7 @@
<ul class="w-annc__list" data-level="0" data-list="event_news">
<li class="w-annc__item">
<div class="w-annc__img-wrap bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
<div class="w-annc__meta">
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">

View File

@ -7,7 +7,7 @@
</div>
<div style="position: absolute;top: 50%;width:100%; z-index: 101;">
<div style="">
<button id="prev-{{subpart-id}}" class="btn-left" title = "<%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %>" style="float: left;height: 2.5em; width: 2.5em;background: border: 0;background-size: contain;position: absolute;transition:.3s; left: 0.6%;color: #ffffff;
<button id="prev-{{subpart-id}}" class="btn-left" title = "<%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %>" style="float: left;height: 2.5em; width: 2.5em;border: 0;background-size: contain;position: absolute;transition:.3s; left: 0.6%;color: #ffffff;
background: rgba(0, 0, 0, 0.2);
border-radius: 50%;
border: none; z-index: 2;"><i class="fa fa-angle-left prev-button" aria-hidden="true" style="font-size: 1.5rem;"></i><span style="display: none;"><%= (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev" %></span></button>
@ -18,24 +18,22 @@
</div>
</div>
<ul class="w-annc__list row cycle-slideshow" data-level="0" data-list="event_news" data-cycle-fx="carousel"
data-cycle-carousel-rwd-json="{767: 1}"
data-cycle-timeout="0"
data-cycle-carousel-visible="3"
data-cycle-carousel-fluid="true"
data-cycle-next="#next-{{subpart-id}}"
data-cycle-prev="#prev-{{subpart-id}}"s
data-cycle-prev="#prev-{{subpart-id}}"
data-cycle-slides=".w-annc__item" >
<li class="w-annc__item " >
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__item_inner">
<a href="{{link_to_show}}" class="widget-title-a">
<div class="w-annc__img-wrap bullseye" style="position:relative">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<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>
@ -45,15 +43,31 @@
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>
<p class="w-annc__subtitle">{{subtitle}}</p>
</div>
</div>
</a>
</div>
</li>
</ul>
</div>
<script src="//code.jquery.com/ui/1.13.2/jquery-ui.js"></script>
<style type="text/css">
.w-annc__item_inner{
cursor: pointer;
}
.widget-title-a {
display: block;
}
[data-subpart-id="{{subpart-id}}"] .bullseye{
overflow: hidden;
}
</style>

View File

@ -6,7 +6,7 @@
<li class="w-annc__item row">
<div class="w-annc__img-wrap col-sm-4 bullseye">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</a>
</div>
<div class="w-annc__content-wrap col-sm-8">

View File

@ -10,14 +10,11 @@
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap bullseye" >
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap card">
<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>
@ -27,6 +24,9 @@
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>

View File

@ -1,4 +1,4 @@
<div class="w-annc widget-announcement-4 event-news-21">
<div class="w-annc widget-announcement-21 event-news-21">
<h3 class="w-annc__widget-title">
<span>{{widget-title}}</span>
</h3>
@ -18,7 +18,7 @@
</div>
</div>
<ul class="w-annc__list row cycle-slideshow" data-level="0" data-list="event_news" data-cycle-fx="carousel"
data-cycle-carousel-rwd-json="{767: 1}"
data-cycle-carousel-rwd-json="{767: 1}"
data-cycle-timeout="0"
data-cycle-carousel-visible="3"
data-cycle-carousel-fluid="true"
@ -29,14 +29,11 @@
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}" class="widget-title-a">
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap bullseye" >
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
<div class="transitionfade"></div>
</div>
<div class="w-annc__content-wrap card">
<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>
@ -46,6 +43,9 @@
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>

View File

@ -21,13 +21,10 @@
<li class="w-annc__item">
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" class="widget-title-a">
<div class="w-annc__img-wrap bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</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>
@ -37,6 +34,9 @@
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title">{{title}}</span>
</h4>
@ -130,7 +130,7 @@
num=1;
}
var flag=false;
$('.btn-left').click(function(){
$('[data-subpart-id="{{subpart-id}}"] .btn-left, #prev-{{subpart-id}}').click(function(){
if(!flag){
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').toArray();
var ul_length = uls.length;
@ -148,7 +148,7 @@
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list.active').eq(0).effect("slide", { direction: "left", mode: 'show', duration: 500},function(){flag=false;});
};
});
$('.btn-right').click(function(){
$('[data-subpart-id="{{subpart-id}}"] .btn-right, #next-{{subpart-id}}').click(function(){
var lilength = $('[data-subpart-id=\"{{subpart-id}}\"] li.w-annc__item').length;
if(!flag){
var uls = $('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list:not(.hidden_item)').toArray();

View File

@ -24,7 +24,7 @@
<p class="w-annc__subtitle">{{subtitle}}</p>
</div>
<div class="w-annc__img-wrap col-sm-4 bullseye">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}">
</div>
</li>
</ul>

View File

@ -1,22 +1,20 @@
<div class="w-annc event-news-4">
<div class="w-annc__more-wrap clearfix">
<h3 class="w-annc__widget-title">
<span>{{widget-title}}</span>
</h3>
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= t("event_news.more") %></a>
<div class="w-annc__more-wrap clearfix">
<a class="w-annc__more btn btn-primary pull-right" href="{{more_url}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多最新消息" : "More NEWS" %></a>
</div>
<ul class="w-annc__list row" data-level="0" data-list="event_news">
<li class="w-annc__item col-md-4" data-href="{{link_to_show}}" tabindex="0" role="link" title="{{title}}">
<li class="w-annc__item col-sm-4">
<div class="w-annc__item_inner">
<div class="w-annc__img-wrap" style="position:relative">
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
<a href="{{link_to_show}}">
<div class="w-annc__img-wrap bullseye" style="position:relative">
<img class="w-annc__img" src="{{img_src}}" alt="" >
<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>
@ -26,151 +24,69 @@
<span class="w-annc__category">{{category}}</span>
</span>
</div>
<span class="w-annc__status-wrap" data-list="statuses" data-level="1">
<span class="w-annc__status label {{status-class}}">{{status}}</span>
</span>
<h4 class="w-annc__entry-title">
<span class="w-annc__title" >{{title}}</span>
</h4>
<p class="w-annc__subtitle">{{subtitle}}</p>
</div>
</a>
</div>
</li>
</ul>
</div>
<style type="text/css">
.w-annc__item_inner{
cursor: pointer;
}
.widget-title-a {
display: block;
}
[data-subpart-id="{{subpart-id}}"] .bullseye{
overflow: hidden;
}
/* 防止外部排版套件影響此 widget 的 li */
[data-subpart-id="{{subpart-id}}"] ul.w-annc__list > li {
position: static !important;
left: auto !important;
top: auto !important;
opacity: 1 !important;
transform: none !important;
transition-property: none !important;
}
[data-subpart-id="{{subpart-id}}"] ul.w-annc__list {
position: static !important;
height: auto !important;
}
</style>
<script>
$(document).ready(function(){
$(document).on('click', '.w-annc__item[data-href]', function(e){
var url = $(this).data('href');
var title = $(this).data('title');
if(!url) return;
var isExternal = !(url.indexOf('/') === 0);
if(isExternal){
window.open(url, '_blank', 'noopener noreferrer');
} else {
window.location.href = url;
}
});
});
$(document).ready(function(){
$(document).on('click keydown', '.w-annc__item[data-href]', function(e){
// 鍵盤只接受 Enter(13) 或 Space(32)
if(e.type === 'keydown' && e.which !== 13 && e.which !== 32) return;
// 避免 Space 捲動頁面
if(e.type === 'keydown' && e.which === 32) e.preventDefault();
var url = $(this).data('href');
if(!url) return;
var isExternal = !(url.indexOf('/') === 0);
if(isExternal){
window.open(url, '_blank', 'noopener noreferrer');
} else {
window.location.href = url;
}
});
});
$(document).ready(function() {
var $widget = $('.event-news-4');
function clearNavTabsFilterStyle_{{subpart-id}}(){
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list > li').each(function(){
var $li = $(this);
$li[0].style.removeProperty('width');
$li[0].style.removeProperty('position');
$li[0].style.removeProperty('left');
$li[0].style.removeProperty('top');
$li[0].style.removeProperty('float');
$li[0].style.removeProperty('opacity');
$li[0].style.removeProperty('transform');
$li[0].style.removeProperty('transition-property');
$li[0].style.removeProperty('transition-duration');
});
$('[data-subpart-id=\"{{subpart-id}}\"] ul.w-annc__list').each(function(){
this.style.removeProperty('position');
this.style.removeProperty('height');
});
}
function getAnncItems($list) {
return $list.find('.w-annc__item[data-href]:visible');
}
// 若父層有 .nav_tabs_filter,跳過 reorganize(由頁籤自行控制顯示/隱藏)
var hasNavTabsFilter_{{subpart-id}} = (
$('[data-subpart-id=\"{{subpart-id}}\"]').parents('.nav_tabs_filter').length > 0 ||
$('[data-subpart-id=\"{{subpart-id}}\"]').closest('.tab-content, .tab_content, [data-pp]').length > 0 &&
$('.nav_tabs_filter').length > 0
);
function getActiveTabIndex($tabs) {
return $tabs.filter('.active').index($tabs.filter('.active').parent().find('.nav_tabs_filter li'));
// 更簡單的寫法:
}
$(window).resize(function(){
if(hasNavTabsFilter_{{subpart-id}}){
clearNavTabsFilterStyle_{{subpart-id}}();
}
})
// 1. 頁籤行為攔截
$(document).on('keydown', '.nav_tabs_filter li', function(e) {
if (e.which !== 9) return;
var $tabs = $widget.find('.nav_tabs_filter li');
var $list = $widget.find('.w-annc__list');
var index = $tabs.index(this);
if (index === -1) return;
if (!e.shiftKey) {
e.preventDefault();
e.stopImmediatePropagation();
$(this).click();
setTimeout(function() {
var $items = getAnncItems($list);
if ($items.length > 0) {
$items.first().focus();
} else {
if (index < $tabs.length - 1) {
$tabs.eq(index + 1).focus();
}
}
}, 150);
} else {
if (index > 0) {
e.preventDefault();
e.stopImmediatePropagation();
var $prevTab = $tabs.eq(index - 1);
$prevTab.click();
setTimeout(function() {
var $prevItems = getAnncItems($list);
if ($prevItems.length > 0) {
$prevItems.last().focus();
} else {
$prevTab.focus();
}
}, 150);
}
}
});
// 2. w-annc__item 行為攔截
$(document).on('keydown', '.w-annc__item[data-href]', function(e) {
if (e.which !== 9) return;
var $this = $(this);
if ($widget.find($this).length === 0) return;
var $list = $widget.find('.w-annc__list');
var $tabs = $widget.find('.nav_tabs_filter li');
// 關鍵修正:從 active tab 取得當前 index
var activeTabIdx = $tabs.index($tabs.filter('.active'));
var $allItems = getAnncItems($list);
var currentIdx = $allItems.index($this);
if (e.shiftKey) {
e.preventDefault();
e.stopImmediatePropagation();
if (currentIdx === 0) {
// 回到當前 active 的頁籤
$tabs.eq(activeTabIdx).focus();
} else {
$allItems.eq(currentIdx - 1).focus();
}
} else {
if (currentIdx === $allItems.length - 1) {
// 最後一筆 -> 跳到下一個頁籤
if (activeTabIdx < $tabs.length - 1) {
e.preventDefault();
e.stopImmediatePropagation();
$tabs.eq(activeTabIdx + 1).focus();
}
// 已是最後一個頁籤的最後一筆,自然流出
} else {
e.preventDefault();
e.stopImmediatePropagation();
$allItems.eq(currentIdx + 1).focus();
}
}
});
});
</script>
</script>

View File

@ -4,6 +4,7 @@
</h3>
<ul class="w-annc__list row" data-level="0" data-list="event_news">
<li class="w-annc__item">
<a href="{{link_to_show}}">
<div class="w-annc__content-wrap">
<div class="w-annc__meta">
<span class="w-annc__postdate-wrap" date-format="%Y-%m-%d">
@ -23,6 +24,7 @@
</h4>
<p class="w-annc__subtitle">{{subtitle}}</p>
</div>
</a>
</li>
</ul>
<div class="w-annc__more-wrap clearfix">

View File

@ -12,6 +12,7 @@
<i class="fa fa-male"></i>
<span class="s-annc__author">{{update_user}}</span>
</li>
<li class="orbithashtags">{{orbithashtags}}</li>
<li class="s-annc__tag-wrap s-annc__meta--item ">
<i class="fa fa-tags"></i>
<span data-list="tags" data-level="0">
@ -50,18 +51,40 @@
</section>
<ul class="s-annc__related-wrap list-unstyled no-print">
<li class="s-annc__related-file">
<i class="fa fa-fw fa-paperclip"></i>
<div class="s-annc__related-file-list" data-list="event_news_files" data-level="0">
<a class="s-annc__flie-title btn btn-default btn-sm" href="{{file_url}}">{{file_title}}</a>
<h3 class="i-annc__page-title"><span>附件檔案</span></h3>
<div class="s-annc__related-file-list" data-list="bulletin_files" data-level="0">
<a class="s-annc__flie-title btn btn-default btn-sm" href="{{file_url}}"><i class="fa fa-fw fa-paperclip"></i>{{file_title}}</a>
</div>
</li>
<li class="s-annc__related-link">
<i class="fa fa-fw fa-link"></i>
<div class="s-annc__related-link-list" data-list="event_news_links" data-level="0">
<a class="s-annc__link-title btn btn-default btn-sm" href="{{link_url}}" target="_blank">{{link_title}}</a>
<h3 class="i-annc__page-title"><span>參考連結</span></h3>
<div class="s-annc__related-link-list" data-list="bulletin_links" data-level="0">
<a class="s-annc__link-title btn btn-default btn-sm" href="{{link_url}}" target="_blank"><i class="fa fa-fw fa-link"></i>{{link_title}}</a>
</div>
</li>
</ul>
</article>
{{link_to_edit}}
<script>
setTimeout(function() {
if ($('.carousel_images').find('.w-ba-banner').length === 0) {
$('.carousel_images').addClass('carousel_images3');
}
}, 300);
$(function() {
var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
var isEn = pageLang.startsWith('en');
if (!isEn) return;
var $fileTitle = $('.related-file-title span');
if ($fileTitle.text().trim() === '附件檔案') {
$fileTitle.text('Attachment');
}
var $linkTitle = $('.related-link-title span');
if ($linkTitle.text().trim() === '參考連結') {
$linkTitle.text('Reference Link');
}
});
</script>

View File

@ -2,6 +2,7 @@
<h3 class="s-annc__show-title event-annc-title" aria-label="內頁活動公告標題">{{title}}</h3>
<ul class="s-annc__meta-wrap list-unstyled no-print">
<li class="orbithashtags">{{orbithashtags}}</li>
<li class="s-annc__tag-wrap s-annc__meta--item ">
<i class="fa fa-tags"></i>
<span data-list="tags" data-level="0">
@ -50,18 +51,40 @@
</section>
<ul class="s-annc__related-wrap list-unstyled no-print">
<li class="s-annc__related-file">
<i class="fa fa-fw fa-paperclip"></i>
<div class="s-annc__related-file-list" data-list="event_news_files" data-level="0">
<a class="s-annc__flie-title btn btn-default btn-sm" href="{{file_url}}">{{file_title}}</a>
<h3 class="i-annc__page-title"><span>附件檔案</span></h3>
<div class="s-annc__related-file-list" data-list="bulletin_files" data-level="0">
<a class="s-annc__flie-title btn btn-default btn-sm" href="{{file_url}}"><i class="fa fa-fw fa-paperclip"></i>{{file_title}}</a>
</div>
</li>
<li class="s-annc__related-link">
<i class="fa fa-fw fa-link"></i>
<div class="s-annc__related-link-list" data-list="event_news_links" data-level="0">
<a class="s-annc__link-title btn btn-default btn-sm" href="{{link_url}}" target="_blank">{{link_title}}</a>
<h3 class="i-annc__page-title"><span>參考連結</span></h3>
<div class="s-annc__related-link-list" data-list="bulletin_links" data-level="0">
<a class="s-annc__link-title btn btn-default btn-sm" href="{{link_url}}" target="_blank"><i class="fa fa-fw fa-link"></i>{{link_title}}</a>
</div>
</li>
</ul>
</article>
{{link_to_edit}}
<script>
setTimeout(function() {
if ($('.carousel_images').find('.w-ba-banner').length === 0) {
$('.carousel_images').addClass('carousel_images3');
}
}, 300);
$(function() {
var pageLang = ($('html').attr('lang') || 'zh-Hant').toLowerCase();
var isEn = pageLang.startsWith('en');
if (!isEn) return;
var $fileTitle = $('.related-file-title span');
if ($fileTitle.text().trim() === '附件檔案') {
$fileTitle.text('Attachment');
}
var $linkTitle = $('.related-link-title span');
if ($linkTitle.text().trim() === '參考連結') {
$linkTitle.text('Reference Link');
}
});
</script>

View File

@ -9,7 +9,7 @@
<div class="view_info">
<span>{{view_count}}</span>
</div>
<div class="Video__Player"><button class="Video__PlayerButton"></button></div>
<div class="Video__Player"><div class="Video__PlayerButton"></div></div>
<div class="videoduration"></div>
</div>
<a class="video_link" href="{{video_show_url}}" title="{{video_title_escape}}">

View File

@ -8,7 +8,7 @@
<div class="view_info">
<span>{{view_count}}</span>
</div>
<div class="Video__Player"><button class="Video__PlayerButton"></button></div>
<div class="Video__Player"><div class="Video__PlayerButton"></div></div>
<div class="videoduration"></div>
</div>
<img class="video_snapshot" src="{{snapshot_url}}"/>

View File

@ -27,7 +27,7 @@
<div class="view_info">
<span>{{view_count}}</span>
</div>
<div class="Video__Player"><button class="Video__PlayerButton"></button></div>
<div class="Video__Player"><div class="Video__PlayerButton"></div></div>
<div class="videoduration"></div>
</div>
<img class="video_snapshot" src="{{snapshot_url}}"/>

View File

@ -8,7 +8,7 @@
<div class="view_info">
<span>{{view_count}}</span>
</div>
<div class="Video__Player"><button class="Video__PlayerButton"></button></div>
<div class="Video__Player"><div class="Video__PlayerButton"></div></div>
<div class="videoduration"></div>
</div>
<img class="video_snapshot" src="{{snapshot_url}}"/>

View File

@ -17,7 +17,7 @@
<div class="view_info">
<span>{{view_count}}</span>
</div>
<div class="Video__Player"><button class="Video__PlayerButton"></button></div>
<div class="Video__Player"><div class="Video__PlayerButton"></div></div>
<div class="videoduration"></div>
</div>
<img class="video_snapshot" src="{{snapshot_url}}"/>

View File

@ -52,7 +52,7 @@
<div class="view_info">
<span>{{view_count}}</span>
</div>
<div class="Video__Player"><button class="Video__PlayerButton"></button></div>
<div class="Video__Player"><div class="Video__PlayerButton"></div></div>
<div class="videoduration"></div>
</div>
<img class="video_snapshot" src="{{snapshot_url}}"/>

View File

@ -5,7 +5,7 @@
<a class=" video_link" href="{{video_show_url}}" title="{{video_title_escape}}">
<div class="video_linkwrapper col-sm-4">
<div class="videohover">
<div class="Video__Player"><button class="Video__PlayerButton"></button></div>
<div class="Video__Player"><div class="Video__PlayerButton"></div></div>
<div class="videoduration"></div>
</div>
<img class="video_snapshot" src="{{snapshot_url}}"/>

View File

@ -26,7 +26,7 @@
<a class="video_link" href="{{video_show_url}}" title="{{video_title_escape}}">
<div class="video_linkwrapper">
<div class="videohover">
<div class="Video__Player"><button class="Video__PlayerButton"></button></div>
<div class="Video__Player"><div class="Video__PlayerButton"></div></div>
<div class="videoduration"></div>
</div>
<img class="video_snapshot" src="{{snapshot_url}}"/>

View File

@ -26,7 +26,7 @@
<a class="video_link" href="{{video_show_url}}" title="{{video_title_escape}}">
<div class="video_linkwrapper">
<div class="videohover">
<div class="Video__Player"><button class="Video__PlayerButton"></button></div>
<div class="Video__Player"><div class="Video__PlayerButton"></div></div>
<div class="videoduration"></div>
</div>
<img class="video_snapshot" src="{{snapshot_url}}"/>

View File

@ -18,7 +18,7 @@
<a class="video_link" href="javascript:void(0)" title="{{video_title_escape}}" data-api-url="{{api_url}}">
<div class="video_linkwrapper">
<div class="videohover">
<div class="Video__Player"><button class="Video__PlayerButton"></button></div>
<div class="Video__Player"><div class="Video__PlayerButton"></div></div>
<div class="videoduration"></div>
</div>
<img class="video_snapshot" src="{{snapshot_url}}"/>

View File

@ -5,7 +5,7 @@
<a class="video_link" href="{{video_show_url}}" title="{{video_title_escape}}">
<div class="video_linkwrapper">
<div class="videohover">
<div class="Video__Player"><button class="Video__PlayerButton"></button></div>
<div class="Video__Player"><div class="Video__PlayerButton"></div></div>
<div class="videoduration"></div>
</div>
<img class="video_snapshot" src="{{snapshot_url}}"/>

View File

@ -14,7 +14,7 @@
<a class="video_link" href="{{video_show_url}}" title="{{video_title_escape}}">
<div class="video_linkwrapper">
<div class="videohover">
<div class="Video__Player"><button class="Video__PlayerButton"></button></div>
<div class="Video__Player"><div class="Video__PlayerButton"></div></div>
<div class="videoduration"></div>
</div>
<img class="video_snapshot" src="{{snapshot_url}}"/>

View File

@ -9,10 +9,10 @@
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div>
<div class="widget-content-title">
<span class="title_text">{{title}}</span>
<span data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
<span class="title_text">{{title}}</span>
</div>
</a>
</li>

View File

@ -9,10 +9,10 @@
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div>
<div class="widget-content-title">
<span class="title_text">{{title}}</span>
<span data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
<span class="title_text">{{title}}</span>
</div>
</a>
</li>

View File

@ -9,10 +9,10 @@
<img src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
</div>
<div class="widget-content-title">
<span class="title_text">{{title}}</span>
<span data-list="statuses" data-level="1">
<span class="label status {{status-class}}">{{status}}</span>
</span>
<span class="title_text">{{title}}</span>
</div>
</a>
</li>