- Welcome to the Kancolle Wiki!
- If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord
Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
Gensui Hime (talk | contribs) |
Gensui Hime (talk | contribs) m (Reverted edits by Gensui Hime (talk) to last revision by Patches) |
||
Line 20: | Line 20: | ||
target.css('opacity', 0).animate({opacity: 1}, 1000); | target.css('opacity', 0).animate({opacity: 1}, 1000); | ||
}); | }); | ||
+ | }); | ||
+ | |||
+ | |||
+ | mw.hook( 'wikipage.content' ).add( createCollapseButtons ); | ||
+ | |||
+ | /** | ||
+ | * Dynamic Navigation Bars (experimental) | ||
+ | * | ||
+ | * Description: See [[Wikipedia:NavFrame]]. | ||
+ | * Maintainers: UNMAINTAINED | ||
+ | */ | ||
+ | |||
+ | /* set up the words in your language */ | ||
+ | var NavigationBarHide = '[' + collapseCaption + ']'; | ||
+ | var NavigationBarShow = '[' + expandCaption + ']'; | ||
+ | var indexNavigationBar = 0; | ||
+ | |||
+ | /** | ||
+ | * Shows and hides content and picture (if available) of navigation bars | ||
+ | * Parameters: | ||
+ | * indexNavigationBar: the index of navigation bar to be toggled | ||
+ | **/ | ||
+ | window.toggleNavigationBar = function ( indexNavigationBar, event ) { | ||
+ | var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar ); | ||
+ | var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar ); | ||
+ | var NavChild; | ||
+ | |||
+ | if ( !NavFrame || !NavToggle ) { | ||
+ | return false; | ||
+ | } | ||
+ | |||
+ | /* if shown now */ | ||
+ | if ( NavToggle.firstChild.data === NavigationBarHide ) { | ||
+ | for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { | ||
+ | if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) { | ||
+ | NavChild.style.display = 'none'; | ||
+ | } | ||
+ | } | ||
+ | NavToggle.firstChild.data = NavigationBarShow; | ||
+ | |||
+ | /* if hidden now */ | ||
+ | } else if ( NavToggle.firstChild.data === NavigationBarShow ) { | ||
+ | for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { | ||
+ | if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) { | ||
+ | NavChild.style.display = 'block'; | ||
+ | } | ||
+ | } | ||
+ | NavToggle.firstChild.data = NavigationBarHide; | ||
+ | } | ||
+ | |||
+ | event.preventDefault(); | ||
+ | }; | ||
+ | |||
+ | /* adds show/hide-button to navigation bars */ | ||
+ | function createNavigationBarToggleButton( $content ) { | ||
+ | var NavChild; | ||
+ | /* iterate over all < div >-elements */ | ||
+ | var $divs = $content.find( 'div' ); | ||
+ | $divs.each( function ( i, NavFrame ) { | ||
+ | /* if found a navigation bar */ | ||
+ | if ( $( NavFrame ).hasClass( 'NavFrame' ) ) { | ||
+ | |||
+ | indexNavigationBar++; | ||
+ | var NavToggle = document.createElement( 'a' ); | ||
+ | NavToggle.className = 'NavToggle'; | ||
+ | NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar ); | ||
+ | NavToggle.setAttribute( 'href', '#' ); | ||
+ | $( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, indexNavigationBar ) ); | ||
+ | |||
+ | var isCollapsed = $( NavFrame ).hasClass( 'collapsed' ); | ||
+ | /** | ||
+ | * Check if any children are already hidden. This loop is here for backwards compatibility: | ||
+ | * the old way of making NavFrames start out collapsed was to manually add style="display:none" | ||
+ | * to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make | ||
+ | * the content visible without JavaScript support), the new recommended way is to add the class | ||
+ | * "collapsed" to the NavFrame itself, just like with collapsible tables. | ||
+ | */ | ||
+ | for ( NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling ) { | ||
+ | if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) { | ||
+ | if ( NavChild.style.display === 'none' ) { | ||
+ | isCollapsed = true; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | if ( isCollapsed ) { | ||
+ | for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { | ||
+ | if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) { | ||
+ | NavChild.style.display = 'none'; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | var NavToggleText = document.createTextNode( isCollapsed ? NavigationBarShow : NavigationBarHide ); | ||
+ | NavToggle.appendChild( NavToggleText ); | ||
+ | |||
+ | /* Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) */ | ||
+ | for( var j = 0; j < NavFrame.childNodes.length; j++ ) { | ||
+ | if ( $( NavFrame.childNodes[j] ).hasClass( 'NavHead' ) ) { | ||
+ | NavToggle.style.color = NavFrame.childNodes[j].style.color; | ||
+ | NavFrame.childNodes[j].appendChild( NavToggle ); | ||
+ | } | ||
+ | } | ||
+ | NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar ); | ||
+ | } | ||
+ | } ); | ||
+ | } | ||
+ | |||
+ | mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton ); | ||
+ | |||
+ | importArticles({ | ||
+ | type: "script", | ||
+ | articles: [ | ||
+ | "User:Gensui_Hime/js/countdown.js" | ||
+ | ] | ||
}); | }); |
Revision as of 17:24, 27 April 2015
/**
* Scrolling text
*
* Copied from zh.kcwiki.moe
*/
function AutoScroll(objNotice) {
$(objNotice).find("ul:first").animate({
marginTop:"-25px"
},500,function(){
$(this).css({marginTop: "0px"}).find("li:first").appendTo(this);
});
}
$(document).ready(function() {
setInterval('AutoScroll("#scrollDiv")',5000);
//image loading effect
$('img').on('load', function(e){
var target = $(this);
target.css('opacity', 0).animate({opacity: 1}, 1000);
});
});
mw.hook( 'wikipage.content' ).add( createCollapseButtons );
/**
* Dynamic Navigation Bars (experimental)
*
* Description: See [[Wikipedia:NavFrame]].
* Maintainers: UNMAINTAINED
*/
/* set up the words in your language */
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';
var indexNavigationBar = 0;
/**
* Shows and hides content and picture (if available) of navigation bars
* Parameters:
* indexNavigationBar: the index of navigation bar to be toggled
**/
window.toggleNavigationBar = function ( indexNavigationBar, event ) {
var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
var NavChild;
if ( !NavFrame || !NavToggle ) {
return false;
}
/* if shown now */
if ( NavToggle.firstChild.data === NavigationBarHide ) {
for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
NavChild.style.display = 'none';
}
}
NavToggle.firstChild.data = NavigationBarShow;
/* if hidden now */
} else if ( NavToggle.firstChild.data === NavigationBarShow ) {
for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
NavChild.style.display = 'block';
}
}
NavToggle.firstChild.data = NavigationBarHide;
}
event.preventDefault();
};
/* adds show/hide-button to navigation bars */
function createNavigationBarToggleButton( $content ) {
var NavChild;
/* iterate over all < div >-elements */
var $divs = $content.find( 'div' );
$divs.each( function ( i, NavFrame ) {
/* if found a navigation bar */
if ( $( NavFrame ).hasClass( 'NavFrame' ) ) {
indexNavigationBar++;
var NavToggle = document.createElement( 'a' );
NavToggle.className = 'NavToggle';
NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
NavToggle.setAttribute( 'href', '#' );
$( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, indexNavigationBar ) );
var isCollapsed = $( NavFrame ).hasClass( 'collapsed' );
/**
* Check if any children are already hidden. This loop is here for backwards compatibility:
* the old way of making NavFrames start out collapsed was to manually add style="display:none"
* to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make
* the content visible without JavaScript support), the new recommended way is to add the class
* "collapsed" to the NavFrame itself, just like with collapsible tables.
*/
for ( NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling ) {
if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
if ( NavChild.style.display === 'none' ) {
isCollapsed = true;
}
}
}
if ( isCollapsed ) {
for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
NavChild.style.display = 'none';
}
}
}
var NavToggleText = document.createTextNode( isCollapsed ? NavigationBarShow : NavigationBarHide );
NavToggle.appendChild( NavToggleText );
/* Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) */
for( var j = 0; j < NavFrame.childNodes.length; j++ ) {
if ( $( NavFrame.childNodes[j] ).hasClass( 'NavHead' ) ) {
NavToggle.style.color = NavFrame.childNodes[j].style.color;
NavFrame.childNodes[j].appendChild( NavToggle );
}
}
NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );
}
} );
}
mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );
importArticles({
type: "script",
articles: [
"User:Gensui_Hime/js/countdown.js"
]
});