This commit is contained in:
ken 2026-09-18 14:13:59 +08:00
parent 73b2142fe3
commit 2a5d50c650
11 changed files with 129 additions and 300 deletions

View File

@ -2489,6 +2489,8 @@ $(function() {
$('.i-annc__page-title').after($('.sitemenu-wrap2')); $('.i-annc__page-title').after($('.sitemenu-wrap2'));
$('.i-archive-title').after($('.sitemenu-wrap2')); $('.i-archive-title').after($('.sitemenu-wrap2'));
$('.page-module-title').after($('.sitemenu-wrap2')); $('.page-module-title').after($('.sitemenu-wrap2'));
$('.show-member').before($('.sitemenu-wrap2'));
$('.show-member').before($('.sitemenu-wrap2'));
$('.box-social-share').before($('.sitemenu-wrap3')); $('.box-social-share').before($('.sitemenu-wrap3'));
$('.box-social-share').before($('.sitemenu-wrap3')); $('.box-social-share').before($('.sitemenu-wrap3'));
$('.box-social-share').before($('.sitemenu-wrap3')); $('.box-social-share').before($('.sitemenu-wrap3'));
@ -4156,128 +4158,128 @@ $(function() {
}); });
}, 500); }, 500);
}); });
//header選單太長 // //header選單太長
$(function() { // $(function() {
function adjustMenuPosition() { // function adjustMenuPosition() {
var headerHeight = ($('.layout-header').outerHeight() || 140) + ($('#orbit-bar').outerHeight() || 0); // var headerHeight = ($('.layout-header').outerHeight() || 140) + ($('#orbit-bar').outerHeight() || 0);
var windowHeight = $(window).height(); // var windowHeight = $(window).height();
var windowWidth = $(window).width(); // var windowWidth = $(window).width();
// 處理 level-1 // // 處理 level-1
$('.modules-menu-level-0 > li').on('mouseenter', function() { // $('.modules-menu-level-0 > li').on('mouseenter', function() {
var $level1 = $(this).find('> .modules-menu-level-1'); // var $level1 = $(this).find('> .modules-menu-level-1');
if (!$level1.length) return; // if (!$level1.length) return;
$level1.css({ 'top': '', 'max-height': '', 'overflow-y': '', 'overflow-x': '' }); // $level1.css({ 'top': '', 'max-height': '', 'overflow-y': '', 'overflow-x': '' });
var menuTop = $level1.offset().top; // var menuTop = $level1.offset().top;
var menuHeight = $level1.outerHeight(); // var menuHeight = $level1.outerHeight();
var available = windowHeight - menuTop; // var available = windowHeight - menuTop;
if (menuHeight > available) { // if (menuHeight > available) {
var maxH = windowHeight - headerHeight; // var maxH = windowHeight - headerHeight;
$level1.css({ // $level1.css({
'top' : 'auto', // 'top' : 'auto',
'max-height': maxH + 'px', // 'max-height': maxH + 'px',
'overflow-y': 'auto', // 'overflow-y': 'auto',
'overflow-x': 'visible' // 'overflow-x': 'visible'
}); // });
// 判斷是否是最後一個 li(level-2 往左展開) // // 判斷是否是最後一個 li(level-2 往左展開)
var $parentLi = $level1.closest('.modules-menu-level-0 > li'); // var $parentLi = $level1.closest('.modules-menu-level-0 > li');
var isLastChild = $parentLi.is(':last-child') && windowWidth >= 769; // var isLastChild = $parentLi.is(':last-child') && windowWidth >= 769;
$level1.find('> li').on('mouseenter.level2fix', function() { // $level1.find('> li').on('mouseenter.level2fix', function() {
var $li = $(this); // var $li = $(this);
var $level2 = $li.find('> .modules-menu-level-2'); // var $level2 = $li.find('> .modules-menu-level-2');
if (!$level2.length) return; // if (!$level2.length) return;
function updateLevel2Position() { // function updateLevel2Position() {
var liRect = $li[0].getBoundingClientRect(); // var liRect = $li[0].getBoundingClientRect();
var orbitHeight = $('#orbit-bar').outerHeight() || 0; // var orbitHeight = $('#orbit-bar').outerHeight() || 0;
var leftPos, rightPos; // var leftPos, rightPos;
if (isLastChild) { // if (isLastChild) {
leftPos = 'auto'; // leftPos = 'auto';
rightPos = (windowWidth - liRect.left) + 'px'; // rightPos = (windowWidth - liRect.left) + 'px';
} else { // } else {
leftPos = liRect.right + 'px'; // leftPos = liRect.right + 'px';
rightPos = 'auto'; // rightPos = 'auto';
} // }
$level2.css({ // $level2.css({
'position' : 'fixed', // 'position' : 'fixed',
'top' : (liRect.top - orbitHeight) + 'px', // 減去 orbit-bar 高度 // 'top' : (liRect.top - orbitHeight) + 'px', // 減去 orbit-bar 高度
'left' : leftPos, // 'left' : leftPos,
'right' : rightPos, // 'right' : rightPos,
'max-height': (windowHeight - headerHeight) + 'px', // 'max-height': (windowHeight - headerHeight) + 'px',
'overflow-y': 'auto', // 'overflow-y': 'auto',
'z-index' : 9999 // 'z-index' : 9999
}); // });
} // }
// 初始定位 // // 初始定位
updateLevel2Position(); // updateLevel2Position();
// 監聽 level-1 捲動,即時更新 top // // 監聽 level-1 捲動,即時更新 top
$level1.on('scroll.level2pos', function() { // $level1.on('scroll.level2pos', function() {
updateLevel2Position(); // updateLevel2Position();
}); // });
}).on('mouseleave.level2fix', function() { // }).on('mouseleave.level2fix', function() {
$(this).find('> .modules-menu-level-2').css({ // $(this).find('> .modules-menu-level-2').css({
'position' : '', // 'position' : '',
'top' : '', // 'top' : '',
'left' : '', // 'left' : '',
'right' : '', // 'right' : '',
'max-height': '', // 'max-height': '',
'overflow-y': '' // 'overflow-y': ''
}); // });
$level1.off('scroll.level2pos'); // $level1.off('scroll.level2pos');
}); // });
} // }
}); // });
// 處理 level-2(level-1 不需要捲動時的一般情況) // // 處理 level-2(level-1 不需要捲動時的一般情況)
$('.modules-menu-level-1 > li').on('mouseenter', function() { // $('.modules-menu-level-1 > li').on('mouseenter', function() {
var $li = $(this); // var $li = $(this);
var $level2 = $li.find('> .modules-menu-level-2'); // var $level2 = $li.find('> .modules-menu-level-2');
if (!$level2.length) return; // if (!$level2.length) return;
var $level1 = $li.closest('.modules-menu-level-1'); // var $level1 = $li.closest('.modules-menu-level-1');
if ($level1.css('overflow-y') === 'auto') return; // if ($level1.css('overflow-y') === 'auto') return;
// 重置 // // 重置
$level2.css({ 'top': '', 'max-height': '', 'overflow-y': '' }); // $level2.css({ 'top': '', 'max-height': '', 'overflow-y': '' });
// 加上 li 的 padding-top,讓 level-2 頂端對齊 li 文字 // // 加上 li 的 padding-top,讓 level-2 頂端對齊 li 文字
var liPaddingTop = parseInt($li.css('padding-top')) || 0; // var liPaddingTop = parseInt($li.css('padding-top')) || 0;
$level2.css('top', liPaddingTop + 'px'); // $level2.css('top', liPaddingTop + 'px');
var menuTop = $level2.offset().top; // var menuTop = $level2.offset().top;
var menuHeight = $level2.outerHeight(); // var menuHeight = $level2.outerHeight();
var available = windowHeight - menuTop; // var available = windowHeight - menuTop;
if (menuHeight > available) { // if (menuHeight > available) {
var overflowAmount = menuHeight - available; // var overflowAmount = menuHeight - available;
$level2.css({ // $level2.css({
'top' : (liPaddingTop - overflowAmount) + 'px', // 'top' : (liPaddingTop - overflowAmount) + 'px',
'max-height': (windowHeight - headerHeight) + 'px', // 'max-height': (windowHeight - headerHeight) + 'px',
'overflow-y': 'auto' // 'overflow-y': 'auto'
}); // });
} // }
}); // });
} // }
adjustMenuPosition(); // adjustMenuPosition();
$(window).on('resize', function() { // $(window).on('resize', function() {
$('.modules-menu-level-0 > li').off('mouseenter'); // $('.modules-menu-level-0 > li').off('mouseenter');
$('.modules-menu-level-1 > li').off('mouseenter.level2fix mouseleave.level2fix'); // $('.modules-menu-level-1 > li').off('mouseenter.level2fix mouseleave.level2fix');
$('.modules-menu-level-1').off('scroll.level2pos'); // $('.modules-menu-level-1').off('scroll.level2pos');
adjustMenuPosition(); // adjustMenuPosition();
}); // });
}); // });
//ai須新增的function //ai須新增的function

View File

@ -277,6 +277,7 @@ td {
img { img {
max-width: 100%; max-width: 100%;
height: auto; height: auto;
width: 100%;
} }
input[type=checkbox]:focus { input[type=checkbox]:focus {
outline: 0.3125em auto -webkit-focus-ring-color; outline: 0.3125em auto -webkit-focus-ring-color;

View File

@ -40,6 +40,9 @@
} }
.w-ba-banner__caption h3 { .w-ba-banner__caption h3 {
font-size: 2em; font-size: 2em;
@media(max-width:768px){
font-size: 1.8em;
}
} }
ul.button-mid{ ul.button-mid{
.prev-button{ .prev-button{

View File

@ -560,7 +560,6 @@
.i-annc__list { .i-annc__list {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: center;
} }
.i-annc__title { .i-annc__title {
font-family: $main-font; font-family: $main-font;

View File

@ -21,6 +21,7 @@
.widget-gallery{ .widget-gallery{
position: relative; position: relative;
z-index: 1; z-index: 1;
margin: 1em 0;
} }
.widget-content-inner{ .widget-content-inner{
margin-bottom: 1em; margin-bottom: 1em;
@ -30,6 +31,7 @@
padding: 0; padding: 0;
.img-thumbnail{ .img-thumbnail{
width: 100%; width: 100%;
padding: 0;
} }
&:hover{ &:hover{
img{ img{
@ -42,6 +44,9 @@
} }
} }
} }
.gallery.card-group .card.card-flip.h-100{
height: auto !important;
}
// Gallery MODULES // Gallery MODULES
.widget-gallery { .widget-gallery {
.widget-title { .widget-title {
@ -564,6 +569,14 @@
} }
} }
&.index8{ &.index8{
.index-content-inner{
background-color: rgba($theme-color-second, 0.1);
margin-bottom: 1em;
border-radius: 1em;
}
h4.index-content-title {
padding: 0 1em;
}
.index-content-inner img{ .index-content-inner img{
padding: 0; padding: 0;
border: 0; border: 0;

View File

@ -63,62 +63,7 @@
$('[data-subpart-id="{{subpart-id}}"] .prev-button').click(function(){ $('[data-subpart-id="{{subpart-id}}"] .prev-button').click(function(){
$(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("prev"); $(this).parent("ul").parent('.w-ba-banner').find(".cycle-slideshow").cycle("prev");
}); });
$(function() {
function updateBannerClip() {
$('.ba-banner-widget-0').each(function() {
var $banner = $(this);
var vpWidth = $(window).width();
var vpHeight = $(window).height();
// --- 寬度:找比 viewport 窄的父層容器 ---
var $container = null;
$banner.parents().each(function() {
var $el = $(this);
if ($el.outerWidth() < vpWidth - 10) {
$container = $el;
return false;
}
});
var clipLeft = 0;
var clipRight = 0;
if ($container && $container.length > 0) {
clipLeft = Math.max(0, $container.offset().left);
clipRight = Math.max(0, vpWidth - $container.offset().left - $container.outerWidth());
}
// --- 高度:依 .w-ad-banner 自己區塊的上下邊界裁切 ---
var bannerTop = $banner.offset().top - $(window).scrollTop();
var bannerBottom = vpHeight - bannerTop - $banner.outerHeight();
var clipTop = Math.max(0, bannerTop);
var clipBottom = Math.max(0, bannerBottom);
var clipValue = 'inset('
+ clipTop + 'px '
+ clipRight + 'px '
+ clipBottom + 'px '
+ clipLeft + 'px)';
$banner.find('img.w-ba-banner__image').css('clip-path', clipValue);
});
}
// 初始執行
setTimeout(updateBannerClip, 300);
// 視窗縮放時重新計算
var resizeTimer;
$(window).on('resize', function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(updateBannerClip, 100);
});
// ✅ 滾動時也要更新,因為 bannerTop 會隨捲動改變
$(window).on('scroll', function() {
updateBannerClip();
});
});
</script> </script>
<style type="text/css"> <style type="text/css">
.w-ba-banner .controlplay .pause-slide.active i{ .w-ba-banner .controlplay .pause-slide.active i{

View File

@ -2,9 +2,7 @@
<h3 class="w-annc__widget-title"> <h3 class="w-annc__widget-title">
<span>{{widget-title}}</span> <span>{{widget-title}}</span>
</h3> </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; <div style=" position: absolute;
top: 1em; top: 1em;
width: 6em; width: 6em;
@ -53,128 +51,7 @@
</div> </div>
</li> </li>
</ul> </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> </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

@ -189,7 +189,7 @@
{ {
"filename": "annc_widget31", "filename": "annc_widget31",
"name": { "name": {
"zh_tw": "L1-3. 條列式-標準3 ( 模組標題, 日期 類別,, 狀態, 標題 )", "zh_tw": "L1-3. 條列式-標準3 ( 模組標題, 日期, 類別, 狀態, 標題 )",
"en": "L1-3. Standard Title List-3 (widget-title, postdate, category, status, title)" "en": "L1-3. Standard Title List-3 (widget-title, postdate, category, status, title)"
}, },
"thumbnail": "annc_widget7_thumbs.png" "thumbnail": "annc_widget7_thumbs.png"

View File

@ -12,10 +12,6 @@
<div class="mask_title">{{image_description}}</div> <div class="mask_title">{{image_description}}</div>
</div> </div>
</div> </div>
<div class="mask">
<div class="circle_box"><img src="/assets/circle_icon.png" alt="">
</div>
</div>
<img <img
srcset=" srcset="
{{thumb-large-src}} 1024w, {{thumb-large-src}} 1024w,

View File

@ -105,14 +105,6 @@
}, },
"thumbnail" : "_gallery_widget4_thumb.png" "thumbnail" : "_gallery_widget4_thumb.png"
}, },
{
"filename" : "gallery_widget5",
"name" : {
"zh_tw" : "5. 投影片式輪播",
"en" : "5. Slide"
},
"thumbnail" : "thumb.png"
},
{ {
"filename" : "gallery_widget6", "filename" : "gallery_widget6",
"name" : { "name" : {

View File

@ -7,7 +7,7 @@
<div class="show-content col-xs-6 col-sm-2"> <div class="show-content col-xs-6 col-sm-2">
<div class="show-content-inner"> <div class="show-content-inner">
<div class="show-pic"> <div class="show-pic">
<a href="{{link_to_show}}" onclick="window.location.hash = '{{link_to_show}}';GalleryTheater();return false;"> <a href="{{link_to_show}}" onclick="window.location.hash = '{{link_to_show}}';GalleryTheater();return false;" title="{{alt_title}}">
<img class="img" src="{{thumb-src}}" alt="{{alt_title}}"> <img class="img" src="{{thumb-src}}" alt="{{alt_title}}">
</a> </a>
<p class="show-description">{{image-description}}</p> <p class="show-description">{{image-description}}</p>
@ -37,6 +37,7 @@
$img.attr('alt', albumTitle + (index + 1)); $img.attr('alt', albumTitle + (index + 1));
} }
}); });
$('.show-pic a').removeAttr('title');
}, 500); }, 500);
</script> </script>