103 lines
4.2 KiB
Plaintext
103 lines
4.2 KiB
Plaintext
<div class="w-annc widget-announcement-4 widget-announcement-25">
|
||
<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}}"><%= (I18n.locale.to_s =="zh_tw") ? "更多最新消息" : "More NEWS" %></a>
|
||
</div>
|
||
<div class="prevnext" style="position: absolute;top: 62%;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: #a8a6a6;
|
||
background: #fff;
|
||
border-radius: 50%;
|
||
border: 1px solid #a8a6a6;
|
||
z-index: 2;"><i class="fa fa-angle-left prev-button" aria-hidden="true" style=""></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: #a8a6a6;
|
||
background: #fff;
|
||
border-radius: 50%;
|
||
border: 1px solid #a8a6a6;
|
||
z-index: 2;"><i class="fa fa-angle-right next-button" aria-hidden="true" style=""></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-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__item_inner">
|
||
<div class="w-annc__img-wrap bullseye" >
|
||
<a href="{{link_to_show}}" aria-label="前往{{widget-title}}" title="{{widget-title}}">
|
||
<img class="w-annc__img" src="{{img_src}}" alt="{{img_description}}" title="{{img_description}}">
|
||
<div class="transitionfade"></div>
|
||
</a>
|
||
</div>
|
||
<div class="w-annc__content-wrap 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>
|
||
</span>
|
||
<span class="w-annc__category-wrap">
|
||
<i class="fa-solid fa-list"></i>
|
||
<span class="w-annc__category">{{category}}</span>
|
||
</span>
|
||
</div>
|
||
<h4 class="w-annc__entry-title">
|
||
<a class="w-annc__title" href="{{link_to_show}}">{{title}}</a>
|
||
</h4>
|
||
<p class="w-annc__subtitle">{{subtitle}}</p>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<script>
|
||
$(document).ready(function () {
|
||
|
||
var $widget = $('.widget-announcement-25');
|
||
var $slideshow = $widget.find('.w-annc__list');
|
||
|
||
function initAnnouncementCarousel() {
|
||
|
||
var visibleCount = $(window).width() < 768 ? 1 : 3;
|
||
|
||
// 如果已初始化 → 先 destroy
|
||
var api = $slideshow.data('cycle.API');
|
||
if (api) {
|
||
api.destroy();
|
||
}
|
||
|
||
// 重新初始化(只針對 widget-announcement-25)
|
||
$slideshow.cycle({
|
||
fx: 'carousel',
|
||
timeout: 0,
|
||
carouselVisible: visibleCount,
|
||
carouselFluid: true,
|
||
slides: '> .w-annc__item',
|
||
|
||
// 只抓這個 widget 裡的按鈕
|
||
prev: $widget.find('.btn-left'),
|
||
next: $widget.find('.btn-right')
|
||
});
|
||
}
|
||
|
||
// 初始執行
|
||
initAnnouncementCarousel();
|
||
|
||
// resize 時重新初始化(加 debounce 避免狂 reinit)
|
||
var resizeTimer;
|
||
$(window).on('resize', function () {
|
||
clearTimeout(resizeTimer);
|
||
resizeTimer = setTimeout(function () {
|
||
initAnnouncementCarousel();
|
||
}, 200);
|
||
});
|
||
|
||
});
|
||
</script> |