diff --git a/assets/javascripts/app.js b/assets/javascripts/app.js index c724c97..77acc0b 100644 --- a/assets/javascripts/app.js +++ b/assets/javascripts/app.js @@ -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('=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(); diff --git a/home/page.html.erb b/home/page.html.erb index f2f0b06..b07bef1 100644 --- a/home/page.html.erb +++ b/home/page.html.erb @@ -18,7 +18,8 @@