새로운 아트위키를 열었습니다.
미디어위키:Common.js
(구)아트위키, 한국어판 창작아카이브
(버전 사이의 차이)
14번째 줄: | 14번째 줄: | ||
/** 사이드바 접었다 펴기 **/ | /** 사이드바 접었다 펴기 **/ | ||
− | + | /////////////////////////////////////////////////////// | |
− | + | // Codesnippet to make your sidebaritems expandable // | |
− | + | // Use this code ONLY for monobook-Style. // | |
− | + | /////////////////////////////////////////////////////// | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | $(document).ready(function(){ | |
− | + | ||
− | + | ||
− | + | ||
− | + | //set the default expanded Items by their headline | |
− | + | var defaultExpandItems= ['Navigation', 'Orga']; | |
+ | //set the basic-name for the cookies, which save the current state of expanding | ||
+ | var expandCookieName = "disdance_project_wiki_nav_expanded_"; | ||
− | + | var maxHeights=[] | |
− | + | var expandeds=[]; | |
− | + | var labels=[]; | |
− | + | initNav(); | |
− | + | }); | |
− | + | ||
− | + | function initNav(){ | |
− | + | $('#p-logo').css({'position':'relative', 'display':'block'});; | |
− | + | $('.generated-sidebar h5,#p-tb h5 ').each(function(i){ | |
− | + | ||
− | + | var id = $(this).parent().attr('id'); | |
+ | maxHeights[id]=$(this).next('div').height(); | ||
+ | var str = $(this).html(); | ||
+ | labels[id]=str; | ||
− | + | if ($.cookie(expandCookieName+id)=='false' ){ | |
− | + | expandeds[id]=false; | |
− | + | minimize( $(this)); | |
− | + | } else if ($.cookie(expandCookieName+id)=='true' ){ | |
− | + | expandeds[id]=true; | |
− | + | maximize( $(this)); | |
− | + | ||
− | + | } else if (defaultExpandItems.indexOf(str)==-1){ | |
− | + | expandeds[id]=false; | |
− | + | minimize( $(this)); | |
− | } | + | } else { |
+ | expandeds[id]=true; | ||
+ | maximize( $(this)); | ||
+ | } | ||
+ | $(this).css({'cursor':'pointer'}); | ||
+ | $(this).click(toggleNav); | ||
+ | }); | ||
} | } | ||
− | function | + | function minimize(target){ |
− | // | + | var id=$(target).parent().attr('id'); |
− | + | //You can change the expires-parameter to save the Cookie longer/shorter than 7 days like in this Code | |
− | + | $.cookie(expandCookieName+id,'false', { expires: 7}); | |
− | + | var str = labels[id]+" ►"; | |
+ | $(target).next('div').animate({'height':'0px'}); | ||
+ | $(target).html(str); | ||
} | } | ||
− | + | function maximize(target){ | |
+ | var id=$(target).parent().attr('id'); | ||
+ | //You can change the expires-parameter to save the Cookie longer/shorter than 7 days like in this Code | ||
+ | $.cookie(expandCookieName+id,'true', { expires: 7}); | ||
+ | var str = labels[id]+" ▼"; | ||
+ | var newHeight = maxHeights[id]; | ||
+ | $(target).next('div').animate({'height':newHeight+'px'}); | ||
+ | $(target).html(str); | ||
+ | } | ||
+ | |||
+ | function toggleNav(e){ | ||
+ | var id=$(e.target).parent().attr('id'); | ||
+ | expandeds[id]=!expandeds[id]; | ||
+ | if(expandeds[id]==true){ | ||
+ | maximize(e.target); | ||
+ | } | ||
+ | else{ | ||
+ | minimize(e.target); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /////////////////////////////////////////////////////// | ||
+ | /////////////////////////////////////////////////////// | ||
2013년 1월 15일 (화) 06:43 판
/* 이 자바스크립트 설정은 모든 문서, 모든 사용자에게 적용됩니다. */ /** 구글 추적기 시작**/ var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-30953450-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); /** 구글 추적기 끝**/ /** 사이드바 접었다 펴기 **/ /////////////////////////////////////////////////////// // Codesnippet to make your sidebaritems expandable // // Use this code ONLY for monobook-Style. // /////////////////////////////////////////////////////// $(document).ready(function(){ //set the default expanded Items by their headline var defaultExpandItems= ['Navigation', 'Orga']; //set the basic-name for the cookies, which save the current state of expanding var expandCookieName = "disdance_project_wiki_nav_expanded_"; var maxHeights=[] var expandeds=[]; var labels=[]; initNav(); }); function initNav(){ $('#p-logo').css({'position':'relative', 'display':'block'});; $('.generated-sidebar h5,#p-tb h5 ').each(function(i){ var id = $(this).parent().attr('id'); maxHeights[id]=$(this).next('div').height(); var str = $(this).html(); labels[id]=str; if ($.cookie(expandCookieName+id)=='false' ){ expandeds[id]=false; minimize( $(this)); } else if ($.cookie(expandCookieName+id)=='true' ){ expandeds[id]=true; maximize( $(this)); } else if (defaultExpandItems.indexOf(str)==-1){ expandeds[id]=false; minimize( $(this)); } else { expandeds[id]=true; maximize( $(this)); } $(this).css({'cursor':'pointer'}); $(this).click(toggleNav); }); } function minimize(target){ var id=$(target).parent().attr('id'); //You can change the expires-parameter to save the Cookie longer/shorter than 7 days like in this Code $.cookie(expandCookieName+id,'false', { expires: 7}); var str = labels[id]+" ►"; $(target).next('div').animate({'height':'0px'}); $(target).html(str); } function maximize(target){ var id=$(target).parent().attr('id'); //You can change the expires-parameter to save the Cookie longer/shorter than 7 days like in this Code $.cookie(expandCookieName+id,'true', { expires: 7}); var str = labels[id]+" ▼"; var newHeight = maxHeights[id]; $(target).next('div').animate({'height':newHeight+'px'}); $(target).html(str); } function toggleNav(e){ var id=$(e.target).parent().attr('id'); expandeds[id]=!expandeds[id]; if(expandeds[id]==true){ maximize(e.target); } else{ minimize(e.target); } } /////////////////////////////////////////////////////// /////////////////////////////////////////////////////// /** Collapsible tables ********************************************************* * * Description: Allows tables to be collapsed, showing only the header. See * http://www.mediawiki.org/wiki/Manual:Collapsible_tables. * Maintainers: [[en:User:R. Koot]] */ var autoCollapse = 2; var collapseCaption = '숨기기'; var expandCaption = '보이기'; function collapseTable( tableIndex ) { var Button = document.getElementById( 'collapseButton' + tableIndex ); var Table = document.getElementById( 'collapsibleTable' + tableIndex ); if ( !Table || !Button ) { return false; } var Rows = Table.rows; if ( Button.firstChild.data == collapseCaption ) { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = 'none'; } Button.firstChild.data = expandCaption; } else { for ( var i = 1; i < Rows.length; i++ ) { Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = collapseCaption; } } function createCollapseButtons() { var tableIndex = 0; var NavigationBoxes = new Object(); var Tables = document.getElementsByTagName( 'table' ); for ( var i = 0; i < Tables.length; i++ ) { if ( hasClass( Tables[i], 'collapsible' ) ) { /* only add button and increment count if there is a header row to work with */ var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0]; if ( !HeaderRow ) { continue; } var Header = HeaderRow.getElementsByTagName( 'th' )[0]; if ( !Header ) { continue; } NavigationBoxes[tableIndex] = Tables[i]; Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex ); var Button = document.createElement( 'span' ); var ButtonLink = document.createElement( 'a' ); var ButtonText = document.createTextNode( collapseCaption ); Button.className = 'collapseButton'; // Styles are declared in [[MediaWiki:Common.css]] ButtonLink.style.color = Header.style.color; ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex ); ButtonLink.setAttribute( 'href', "javascript:collapseTable(" + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode( '[' ) ); Button.appendChild( ButtonLink ); Button.appendChild( document.createTextNode( ']' ) ); Header.insertBefore( Button, Header.childNodes[0] ); tableIndex++; } } for ( var i = 0; i < tableIndex; i++ ) { if ( hasClass( NavigationBoxes[i], 'collapsed' ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], 'autocollapse' ) ) ) { collapseTable( i ); } else if ( hasClass( NavigationBoxes[i], 'innercollapse' ) ) { var element = NavigationBoxes[i]; while ( element = element.parentNode ) { if ( hasClass( element, 'outercollapse' ) ) { collapseTable( i ); break; } } } } } addOnloadHook( createCollapseButtons ); /** Test if an element has a certain class ************************************** * * Description: Uses regular expressions and caching for better performance. * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]] */ var hasClass = ( function() { var reCache = {}; return function( element, className ) { return ( reCache[className] ? reCache[className] : ( reCache[className] = new RegExp( "(?:\\s|^)" + className + "(?:\\s|$)" ) ) ).test( element.className ); }; })();