Fix js bug and adjust page three column.

This commit is contained in:
BoHung Chiu 2022-05-20 12:03:00 +08:00
parent 136d2d60cf
commit 696dbf7ca6
2 changed files with 63 additions and 131 deletions

View File

@ -2,6 +2,12 @@
// ECMAScript 5 嚴格模式
'use strict';
$.fn.replace_bootstrap_col_class = function(colcls){
$(this).removeClass(function(index, css) {
return (css.match(/(^|\s)col-\S+/g) || []).join(' ');
})
.addClass(colcls);
}
// 初始函數: 把所有的程式碼都包在init裡面方便在之後的jQuery ready 函數裡一次呼叫
function init() {
// 快取一些常用的變數
@ -270,20 +276,49 @@
var $rightCol = $(rightCol);
var columnCls = columnCls || 'col-sm-12';
if ($leftCol.length && $rightCol.length) {
if ($leftCol.length || $rightCol.length) {
$.each([$leftCol, $rightCol], function() {
if ($(this).is(':empty')) {
$(this)
.addClass('empty-column')
.siblings()
.removeClass(function(index, css) {
return (css.match(/(^|\s)col-\S+/g) || []).join(' ');
})
.addClass(columnCls);
.replace_bootstrap_col_class(columnCls);
}
});
}
},
setThreeColumn: function(leftCol, centerCol, rightCol, mediumCls, fullCls) { //mediumCls and fullCls will apply to centerCol
var $leftCol = $(leftCol);
var $centerCol = $(centerCol);
var $rightCol = $(rightCol);
var mediumCls = mediumCls || 'col-sm-9';
var mediumCls_complement = mediumCls.replace(/(^|\s+)col-[^-]+-([\d]+)/g,function(match, p1, p2){
return match.replace(p2, 12 - Number(p2));
});
var fullCls = fullCls || 'col-sm-12';
var asides_cols = [$leftCol, $rightCol];
var asides_count = [$leftCol.not(':empty').length, $rightCol.not(':empty').length];
var complemented_aside, empty_aside;
if(asides_count[0] == 0 && asides_count[1] == 0){
$centerCol.replace_bootstrap_col_class(fullCls);
$.each(asides_cols, function() {
$(this).addClass('empty-column').replace_bootstrap_col_class('');
});
}else{
asides_cols.forEach(function(col , i){
if(asides_count[i] == 0){
empty_aside = col;
}else{
complemented_aside = col;
}
})
if(empty_aside){
empty_aside.addClass('empty-column').replace_bootstrap_col_class('');
complemented_aside.replace_bootstrap_col_class(mediumCls_complement);
$centerCol.replace_bootstrap_col_class(mediumCls);
}
}
},
MobileMenu: function() {
var $menu = $('[data-menu-level="0"]');
@ -388,7 +423,7 @@
orbit.sitemenuDropdown();
orbit.goBackTop('top', 800);
orbit.plugins.bullEye();
orbit.setColumn('.left-column', '.right-column');
orbit.setThreeColumn('.left-column','.center-column', '.right-column');
// 自適應網頁使用當網頁載入時如果視窗寬度小於768就執行orbit.nav.setDropdown函數
if ($(window).width() < 768) {
@ -420,132 +455,28 @@
}
});
function forFreeGo() {
// 幫有連結目的之所有a標籤加上title
for(var i=0;i<$('a').length;i++){
if($('a').eq(i).attr("href") != "" || $('a').eq(i).attr("href") != undefined ){
var titlestr="";
if($('a').eq(i).attr('target')=='_self')
titlestr += '在本視窗開啟 ';
else if($('a').eq(i).attr('target') == '_blank')
titlestr += '在新視窗開啟 ';
if($('a').eq(i).attr('title') == "" || $('a').eq(i).attr('title')==undefined && $('a').eq(i).html().search('</') == -1)
titlestr += $('a').eq(i).html().trim();
else if($('a').eq(i).attr('title') == "" || $('a').eq(i).attr('title') == undefined && $('a').eq(i).find('>span').length==1)
titlestr += $('a').eq(i).find('>span').html().trim();
else if($('a').eq(i).attr('title') == "" || $('a').eq(i).attr('title') == undefined){
try{
if($('a').eq(i).html().trim().split('>').length==2)
titlestr += $('a').eq(i).html().trim().split('>')[1].trim();
else if($('a').eq(i).html().trim().split('>').length==3)
titlestr += $('a').eq(i).html().trim().split('>')[2].trim();
}catch(e){};
}
else
titlestr += $('a').eq(i).attr('title');
if(titlestr.search('<img') != -1)
titlestr = "這是一張照片";
if(titlestr != "")
$('a').eq(i).attr('title',titlestr);
};
};
// 刪除banner-slide的空連結和空連結目標
for(var i=0;i<$('.w-ba-banner__slide a').length;i++){
if($('.w-ba-banner__slide a').eq(i).attr('href')=="")
$('.w-ba-banner__slide a').eq(i).removeAttr('href');
if($('.w-ba-banner__slide a').eq(i).attr('target') == "")
$('.w-ba-banner__slide a').eq(i).removeAttr('target');
};
// 幫無標題之iframe加上title
for(var i=0;i<$('iframe').length;i++)
if($('iframe').eq(i).attr('title')=="" || $('iframe').eq(i).attr('title')== undefined ){
if($('iframe').eq(i).attr('src').search('facebook') != -1 )
$('iframe').eq(i).attr('title','facebook');
else if($('iframe').eq(i).attr('src').search('google') != -1 )
$('iframe').eq(i).attr('title','google');
else if($('iframe').eq(i).attr('src').search('youtube') != -1 )
$('iframe').eq(i).attr('title','youtube');
else if($('iframe').eq(i).attr('src').search('twitframe') != -1 )
$('iframe').eq(i).attr('title','twitter');
else
$('iframe').eq(i).attr('title','unknown');
};
// 刪除空的檔案室
var archievelen = $('dd a.i-archive-files-item').length;
for(i=archievelen-1;i>=0;i--)
if($('dd a.i-archive-files-item').eq(i).html().trim()=="")
$('dd a.i-archive-files-item').eq(i).parent('dd').remove();
// 刪除具有空連結欄位的橫列
for(var i = 0;i < $('*[data-list] tr td a').length ; i++)
if($('*[data-list] tr td a').eq(i).html().trim()=="")
$('*[data-list] tr td a').eq(i).parent('td').parent('tr').remove();
// tab按鍵選到menu,會顯示下層的menu(為了符合無障礙)
$('.nav-level-0>li>a').focus(function(e) {
e.stopPropagation();
$(this).parent().focus();
if ($(this).parent().find('.nav-level-1').hasClass('show')) {
} else {
$('.nav-level-1').removeClass('show');
$(this).parent().find('.nav-level-1').addClass('show');
}
});
$('.nav-level-1>li>a').focus(function(e) {
e.stopPropagation();
if ($(this).parent().find('.nav-level-2').hasClass('show')) {
}else{
$('.nav-level-2').removeClass('show');
$(this).parent().find('.nav-level-2').addClass('show');
}
});
$('show').parent('li').focus();
}
forFreeGo();
//背景widget設定
if ( location.href.search('editmode=on') != -1 ) {
$('.background').css({'z-index': '0', 'position': 'relative'});
} else {
$('.background').css('z-index','-1');
};
//背景widget設定
if ( location.href.search('editmode=on') != -1 ) {
$('.background').css('z-index','0');
} else {
$('.background').css('z-index','-1');
};
//header banner setting
if ( location.href.search('editmode=on') != -1 ) {
$('.header-banner').css('z-index','2');
} else {
$('.header-banner').css({
'position': 'absolute',
'top': '0',
'z-index': '-2',
});
};
//header banner setting
if ( location.href.search('editmode=on') != -1 ) {
$('.header-banner').css('z-index','2');
} else {
$('.header-banner').css({
'position': 'absolute',
'top': '0',
'z-index': '-2',
});
};
//公告頁籤
function annc_widget_nav() {
$('.tab_nav').nextAll().addClass('tab_content');
$('.tab_content').css("display","none");
$('.tab_content').eq(0).css('display', 'block');
var num = $('.tab_nav li').length;
$('.tab_content').eq(num).css('display', 'block');
$('.tab_content').eq(num).nextAll().css('display', 'block');
$('.tab_nav li').off('click').on('click',function() {
$('.tab_nav li').removeClass('active');
$(this).addClass('active');
var fa = $(this).index();
$('.tab_content').attr('style','');
$('.tab_content').css("display","none");
$('.tab_content').eq(fa).css('display','block');
var num = $('.tab_nav li').length;
$('.tab_content').eq(num).css('display', 'block');
$('.tab_content').eq(num).nextAll().css('display', 'block');
});
var url = window.location.search;
if (url == "?editmode=on") {
$('.tab_content').css({'position': 'relative','display':'block'});
}
var url = window.location.search;
if (url == "?editmode=on") {
$('.tab_content').css({'position': 'relative','display':'block'});
}
}
annc_widget_nav();

View File

@ -18,7 +18,8 @@
<section class="page-content-box col-sm-3" data-pp="903"></section>
</div>
<div class="row">
<section class="layout-content-box left-column col-sm-9">
<aside class="layout-content-box left-column col-sm-3" data-pp="802"></aside>
<section class="layout-content-box center-column col-sm-6">
<div class="extra" data-pp="600"></div>
<main id="main-content" class="main-content" data-content="true">
<%= yield %>