MediaWiki:Common.js:修订间差异
跳转到导航
跳转到搜索
(// Edit via Wikiplus) |
|||
第1行: | 第1行: | ||
/* 这里的任何JavaScript将为所有用户在每次页面载入时加载。 */ | /* 这里的任何JavaScript将为所有用户在每次页面载入时加载。 */ | ||
/* 切换立绘按钮(当前作废) */ | /* 切换立绘按钮(当前作废) */ | ||
$(document).ready( | $(document).ready(function () { | ||
$("#btn_2").click(function () { | |||
$("#btn_1, #btn_2").hide(); | |||
$("#btn_3, #btn_4").show(); | |||
}); | |||
$("#btn_3").click(function () { | |||
$("#btn_1, #btn_3").hide(); | |||
$("#btn_2, #btn_4").show(); | |||
}); | |||
$("#btn_4").click(function () { | |||
$("#btn_1, #btn_4").hide(); | |||
$("#btn_2, #btn_3").show(); | |||
}); | |||
$("#btn_5").click(function () { | |||
$("#btn_1, #btn_2, #btn_3, #btn_4").show(); | |||
}); | |||
}); | |||
/* Countdown */ | /* Countdown */ | ||
// __NOWYSIWYG__ <source lang="javascript"> | // __NOWYSIWYG__ <source lang="javascript"> | ||
/** | /** | ||
* Countdown | |||
* | |||
* @version 2.1 | |||
* | |||
* @author Pecoes <http://c.wikia.com/wiki/User:Pecoes> | |||
* @author Asaba <http://dev.wikia.com/wiki/User:Asaba> | |||
* | |||
* Version 1 authors: | |||
* - Splarka <http://c.wikia.com/wiki/User:Splarka> | |||
* - Eladkse <http://c.wikia.com/wiki/User:Eladkse> | |||
* | |||
* documentation and examples at: | |||
* <http://dev.wikia.com/wiki/Countdown> | |||
*/ | |||
/*jshint jquery:true, browser:true, devel:true, camelcase:true, curly:false, undef:true, bitwise:true, eqeqeq:true, forin:true, immed:true, latedef:true, newcap:true, noarg:true, unused:true, regexp:true, strict:true, trailing:false */ | /*jshint jquery:true, browser:true, devel:true, camelcase:true, curly:false, undef:true, bitwise:true, eqeqeq:true, forin:true, immed:true, latedef:true, newcap:true, noarg:true, unused:true, regexp:true, strict:true, trailing:false */ | ||
/*global mediaWiki:true*/ | /*global mediaWiki:true*/ | ||
;(function (module, mw, $, undefined) { | ; (function (module, mw, $, undefined) { | ||
'use strict'; | 'use strict'; | ||
var translations = $.extend(true, { | var translations = $.extend(true, { | ||
// Catalan (Català) | // Catalan (Català) | ||
第103行: | 第81行: | ||
days: 'days' | days: 'days' | ||
}, | }, | ||
// Greek (Ελληνικά) | |||
el: { | el: { | ||
and: 'και', | and: 'και', | ||
第239行: | 第217行: | ||
// Russian (русский) | // Russian (русский) | ||
ru: { | ru: { | ||
and: 'и', | and: 'и', | ||
second: 'секунда', | second: 'секунда', | ||
seconds: 'секунд', | seconds: 'секунд', | ||
minute: 'минута', | minute: 'минута', | ||
minutes: 'минут', | minutes: 'минут', | ||
hour: 'час', | hour: 'час', | ||
hours: 'часов', | hours: 'часов', | ||
day: 'день', | day: 'день', | ||
days: 'дней' | days: 'дней' | ||
}, | }, | ||
第287行: | 第265行: | ||
}, module.translations || {}), | }, module.translations || {}), | ||
i18n = translations[ | i18n = translations[ | ||
mw.config.get('wgContentLanguage') | |||
] || translations.zh; | ] || translations.zh; | ||
var countdowns = []; | var countdowns = []; | ||
var NO_LEADING_ZEROS = 1; | var NO_LEADING_ZEROS = 1; | ||
function output (i, diff) { | function output(i, diff) { | ||
/*jshint bitwise:false*/ | /*jshint bitwise:false*/ | ||
var delta, result, parts = []; | var delta, result, parts = []; | ||
第304行: | 第282行: | ||
diff = Math.floor(diff / 60); | diff = Math.floor(diff / 60); | ||
delta = diff % 24; | delta = diff % 24; | ||
parts.unshift(delta + ' ' + i18n[delta === 1 ? 'hour' | parts.unshift(delta + ' ' + i18n[delta === 1 ? 'hour' : 'hours']); | ||
diff = Math.floor(diff / 24); | diff = Math.floor(diff / 24); | ||
parts.unshift(diff | parts.unshift(diff + ' ' + i18n[diff === 1 ? 'day' : 'days']); | ||
result = parts.pop(); | result = parts.pop(); | ||
if (countdowns[i].opts & NO_LEADING_ZEROS) { | if (countdowns[i].opts & NO_LEADING_ZEROS) { | ||
第318行: | 第296行: | ||
countdowns[i].node.text(result); | countdowns[i].node.text(result); | ||
} | } | ||
function end(i) { | function end(i) { | ||
var c = countdowns[i].node.parent(); | var c = countdowns[i].node.parent(); | ||
第344行: | 第322行: | ||
} | } | ||
break; | break; | ||
} | |||
countdowns[i].countup = true; | |||
output(i, 0); | |||
return false; | |||
} | } | ||
function update () { | function update() { | ||
var now = Date.now(); | var now = Date.now(); | ||
var countdownsToRemove = []; | var countdownsToRemove = []; | ||
第362行: | 第340行: | ||
}); | }); | ||
var x; | var x; | ||
while((x = countdownsToRemove.pop()) !== undefined) { | while ((x = countdownsToRemove.pop()) !== undefined) { | ||
countdowns.splice(x, 1); | countdowns.splice(x, 1); | ||
} | } | ||
第371行: | 第349行: | ||
} | } | ||
} | } | ||
function getOptions (node) { | function getOptions(node) { | ||
/*jshint bitwise:false*/ | /*jshint bitwise:false*/ | ||
var text = node.parent().attr('data-options'), | var text = node.parent().attr('data-options'), | ||
opts = 0; | |||
if (text) { | if (text) { | ||
if (/no-leading-zeros/.test(text)) { | if (/no-leading-zeros/.test(text)) { | ||
第383行: | 第361行: | ||
return opts; | return opts; | ||
} | } | ||
$(function () { | $(function () { | ||
var countdown = $('.countdown'); | var countdown = $('.countdown'); | ||
第393行: | 第371行: | ||
.each(function () { | .each(function () { | ||
var $this = $(this), | var $this = $(this), | ||
date = (new Date($this.text())).valueOf(); | |||
if (isNaN(date)) { | if (isNaN(date)) { | ||
$this.text('BAD DATE'); | $this.text('BAD DATE'); | ||
第408行: | 第386行: | ||
} | } | ||
}); | }); | ||
}(window.countdownTimer = window.countdownTimer || {}, mediaWiki, jQuery)); | }(window.countdownTimer = window.countdownTimer || {}, mediaWiki, jQuery)); | ||
//</source> | //</source> | ||
/* 导航 */ | /* 导航 */ | ||
$(function () { | |||
/*战舰少女R导航*/ | |||
(function ($, de) { | |||
/*导航栏悬浮、点击展开*/ | |||
$(".banner1").hover(function () { | |||
$(this).find(".banner2").eq(0).show(); | |||
}, function () { | |||
$(this).find(".banner2").eq(0).hide(); | |||
}); | |||
var isTouch = ('ontouchstart' in de) ? 'touchstart' : 'click', _on = $.fn.on; | |||
$.fn.on = function () { | |||
arguments[0] = (arguments[0] === 'click') ? isTouch : arguments[0]; | |||
return _on.apply(this, arguments); | |||
}; | |||
$(".banner1").on("click", function () { | |||
var obj = $(this).find(".banner2").eq(0); | |||
if (obj.is("visible")) { | |||
obj.hide(); | |||
} else { | |||
obj.show(); | |||
} | |||
$(this).siblings().find(".banner2").hide(); | |||
}); | |||
/*导航栏倒计时*/ | |||
var now = new Date(); | |||
var nows = now.getTime(); | |||
now.setHours(0); | |||
now.setMinutes(0); | |||
now.setSeconds(0); | |||
var today = now.getTime(); | |||
var passed = Math.floor((nows - today) / 1000); | |||
changeCountDown(); | |||
setInterval(function () { | |||
changeCountDown(); | changeCountDown(); | ||
}, 1000); | |||
function changeCountDown() { | |||
var lave = 24 * 60 * 60 - passed, h = Math.floor(lave / 3600), m = Math.floor((lave - h * 3600) / 60), s = lave - h * 3600 - m * 60, _s = '', _c = '#0F3'; | |||
if (passed < 60) _s = ",成功+1day"; | |||
if (passed > 12 * 3600) _c = "#fc0"; | |||
if (passed > 23 * 3600) _c = "#F30"; | |||
$("#zjsnr-lavetime").html("<span style='color:" + _c + "'>" + h + "</span>" + "小时" + "<span style='color:" + _c + "'>" + m + "</span>" + "分" + "<span style='color:" + _c + "'>" + s + "</span>" + "秒" + _s); | |||
passed++; | |||
} | |||
}(jQuery, document.documentElement)); | |||
}) | |||
/* 显示上级页面标题的链接 */ | /* 显示上级页面标题的链接 */ | ||
$(function(){ | $(function () { | ||
if (mw.config.values.wgPageName.indexOf('/') != -1 && !$('.subpages')[0] && (mw.config.values.wgNamespaceIds.special != mw.config.values.wgNamespaceNumber || mw.config.values.wgPageName.indexOf('Special:移动页面') != -1)) { | if (mw.config.values.wgPageName.indexOf('/') != -1 && !$('.subpages')[0] && (mw.config.values.wgNamespaceIds.special != mw.config.values.wgNamespaceNumber || mw.config.values.wgPageName.indexOf('Special:移动页面') != -1)) { | ||
var links = mw.config.values.wgPageName.split('/'), | var links = mw.config.values.wgPageName.split('/'), | ||
link = '/wiki', | |||
subpages = $('<span class="subpages"></span>').text('<'), | |||
length = links.length - 1, | |||
index; | |||
if (mw.config.values.wgPageName.indexOf('Special:移动页面') != -1) links.splice(0, 1); | if (mw.config.values.wgPageName.indexOf('Special:移动页面') != -1) links.splice(0, 1); | ||
for (index = 0; index < length; index++) { | for (index = 0; index < length; index++) { | ||
第480行: | 第458行: | ||
$('#contentSub').prepend(subpages); | $('#contentSub').prepend(subpages); | ||
} | } | ||
}); | |||
/* sitenotice */ | |||
$(function () { | |||
var self = $('#siteNoticeScroll'); | |||
if (!self[0]) return; | |||
window.setInterval(function () { | |||
var width = self.width(); | |||
self.find('ul:first').animate({ | |||
marginLeft: -(width * 2) + 'px' | |||
}, 730, function () { | |||
$(this).css({ | |||
marginLeft: 0 | |||
}).find('li:first').appendTo(this); | |||
}); | |||
}, 5000); | |||
}); | }); |