|
|
| 第42行: |
第42行: |
|
| |
|
| /* Countdown */ | | /* Countdown */ |
| // __NOWYSIWYG__ <source lang="javascript">
| | importArticles({ |
| /**
| | type: "script", |
| * Countdown
| | articles: [ |
| *
| | "wikia:c:dev:MediaWiki:Countdown/code.js" |
| * @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 */
| |
| /*global mediaWiki:true*/
| |
| | |
| ;(function (module, mw, $, undefined) {
| |
| | |
| 'use strict';
| |
|
| |
| var translations = $.extend(true, {
| |
| // Catalan (Català)
| |
| ca: {
| |
| and: 'i',
| |
| second: 'segon',
| |
| seconds: 'segons',
| |
| minute: 'minut',
| |
| minutes: 'minuts',
| |
| hour: 'hora',
| |
| hours: 'hores',
| |
| day: 'dia',
| |
| days: 'dies'
| |
| },
| |
| // German (Deutsch)
| |
| de: {
| |
| and: 'und',
| |
| second: 'Sekunde',
| |
| seconds: 'Sekunden',
| |
| minute: 'Minute',
| |
| minutes: 'Minuten',
| |
| hour: 'Stunde',
| |
| hours: 'Stunden',
| |
| day: 'Tag',
| |
| days: 'Tage'
| |
| },
| |
| // English (English)
| |
| en: {
| |
| and: 'and',
| |
| second: 'second',
| |
| seconds: 'seconds',
| |
| minute: 'minute',
| |
| minutes: 'minutes',
| |
| hour: 'hour',
| |
| hours: 'hours',
| |
| day: 'day',
| |
| days: 'days'
| |
| },
| |
| // Greek (Ελληνικά)
| |
| el: {
| |
| and: 'και',
| |
| second: 'δευτερόλεπτο',
| |
| seconds: 'δεπτερόλεπτα',
| |
| minute: 'λετπό',
| |
| minutes: 'λεπτά',
| |
| hour: '΄΄ωρα',
| |
| hours: 'ώρες',
| |
| day: 'ημέρα',
| |
| days: 'ημέρες'
| |
| },
| |
| // Spanish (Español)
| |
| es: {
| |
| and: 'y',
| |
| second: 'segundo',
| |
| seconds: 'segundos',
| |
| minute: 'minuto',
| |
| minutes: 'minutos',
| |
| hour: 'hora',
| |
| hours: 'horas',
| |
| day: 'día',
| |
| days: 'días'
| |
| },
| |
| // French (Français)
| |
| fr: {
| |
| and: 'et',
| |
| second: 'seconde',
| |
| seconds: 'secondes',
| |
| minute: 'minute',
| |
| minutes: 'minutes',
| |
| hour: 'heure',
| |
| hours: 'heures',
| |
| day: 'jour',
| |
| days: 'jours'
| |
| },
| |
| // Hungarian (Magyar)
| |
| hu: {
| |
| and: 'és',
| |
| second: 'másodperc',
| |
| seconds: 'másodperc',
| |
| minute: 'perc',
| |
| minutes: 'perc',
| |
| hour: 'óra',
| |
| hours: 'óra',
| |
| day: 'nap',
| |
| days: 'nap'
| |
| },
| |
| // Italian (Italiano)
| |
| it: {
| |
| and: 'e',
| |
| second: 'secondo',
| |
| seconds: 'secondi',
| |
| minute: 'minuto',
| |
| minutes: 'minuti',
| |
| hour: 'ora',
| |
| hours: 'ore',
| |
| day: 'giorno',
| |
| days: 'giorni'
| |
| },
| |
| // Japanese (日本語)
| |
| ja: {
| |
| and: '',
| |
| second: '秒',
| |
| seconds: '秒',
| |
| minute: '分',
| |
| minutes: '分',
| |
| hour: '時間',
| |
| hours: '時間',
| |
| day: '日',
| |
| days: '日'
| |
| },
| |
| // Malay (Bahasa Melayu)
| |
| ms: {
| |
| and: 'dan',
| |
| second: 'saat',
| |
| seconds: 'saat',
| |
| minute: 'minit',
| |
| minutes: 'minit',
| |
| hour: 'jam',
| |
| hours: 'jam',
| |
| day: 'hari',
| |
| days: 'hari'
| |
| },
| |
| // Dutch (Nederlands)
| |
| nl: {
| |
| and: 'en',
| |
| second: 'seconde',
| |
| seconds: 'seconden',
| |
| minute: 'minuut',
| |
| minutes: 'minuten',
| |
| hour: 'uur',
| |
| hours: 'uur',
| |
| day: 'dag',
| |
| days: 'dagen'
| |
| },
| |
| // Polish (Polski)
| |
| pl: {
| |
| and: 'i',
| |
| second: 'sekunda',
| |
| seconds: 'sekund(y)',
| |
| minute: 'minuta',
| |
| minutes: 'minut(y)',
| |
| hour: 'godzina',
| |
| hours: 'godzin(y)',
| |
| day: 'dzień',
| |
| days: 'dni'
| |
| },
| |
| // Portuguese (Português)
| |
| pt: {
| |
| and: 'e',
| |
| second: 'segundo',
| |
| seconds: 'segundos',
| |
| minute: 'minuto',
| |
| minutes: 'minutos',
| |
| hour: 'hora',
| |
| hours: 'horas',
| |
| day: 'dia',
| |
| days: 'dias'
| |
| | |
| },
| |
| // Brazilian Portuguese (Português do Brasil)
| |
| 'pt-br': {
| |
| and: 'e',
| |
| second: 'segundo',
| |
| seconds: 'segundos',
| |
| minute: 'minuto',
| |
| minutes: 'minutos',
| |
| hour: 'hora',
| |
| hours: 'horas',
| |
| day: 'dia',
| |
| days: 'dias'
| |
| | |
| },
| |
| // Russian (русский)
| |
| ru: {
| |
| and: 'и',
| |
| second: 'секунда',
| |
| seconds: 'секунд',
| |
| minute: 'минута',
| |
| minutes: 'минут',
| |
| hour: 'час',
| |
| hours: 'часов',
| |
| day: 'день',
| |
| days: 'дней'
| |
| },
| |
| // Serbian (српски језик)
| |
| sr: {
| |
| and: 'i',
| |
| second: 'sekundu',
| |
| seconds: 'sekunde/-i',
| |
| minute: 'minutu',
| |
| minutes: 'minute/-a',
| |
| hour: 'sat',
| |
| hours: 'sata/-i',
| |
| day: 'dan',
| |
| days: 'dana'
| |
| },
| |
| // Vietnamese (Tiếng Việt)
| |
| vi: {
| |
| and: 'và',
| |
| second: 'giây',
| |
| seconds: 'giây',
| |
| minute: 'phút',
| |
| minutes: 'phút',
| |
| hour: 'giờ',
| |
| hours: 'giờ',
| |
| day: 'ngày',
| |
| days: 'ngày'
| |
| },
| |
| // Chinese (中文)
| |
| zh: {
| |
| and: ' ',
| |
| second: '秒',
| |
| seconds: '秒',
| |
| minute: '分',
| |
| minutes: '分',
| |
| hour: '小时',
| |
| hours: '小时',
| |
| day: '天',
| |
| days: '天'
| |
| }
| |
| }, module.translations || {}),
| |
| i18n = translations[
| |
| mw.config.get('wgContentLanguage')
| |
| ] || translations.zh;
| |
| | |
| var countdowns = []; | |
|
| |
| var NO_LEADING_ZEROS = 1;
| |
|
| |
| function output (i, diff) {
| |
| /*jshint bitwise:false*/
| |
| var delta, result, parts = [];
| |
| delta = diff % 60; | |
| parts.unshift(delta + ' ' + i18n[delta === 1 ? 'second' : 'seconds']);
| |
| diff = Math.floor(diff / 60);
| |
| delta = diff % 60;
| |
| parts.unshift(delta + ' ' + i18n[delta === 1 ? 'minute' : 'minutes']);
| |
| diff = Math.floor(diff / 60);
| |
| delta = diff % 24;
| |
| parts.unshift(delta + ' ' + i18n[delta === 1 ? 'hour' : 'hours' ]);
| |
| diff = Math.floor(diff / 24);
| |
| parts.unshift(diff + ' ' + i18n[diff === 1 ? 'day' : 'days' ]);
| |
| result = parts.pop();
| |
| if (countdowns[i].opts & NO_LEADING_ZEROS) {
| |
| while (parts.length && parts[0][0] === '0') {
| |
| parts.shift();
| |
| }
| |
| }
| |
| if (parts.length) {
| |
| result = parts.join(', ') + ' ' + i18n.and + ' ' + result;
| |
| }
| |
| countdowns[i].node.text(result);
| |
| }
| |
|
| |
| function end(i) {
| |
| var c = countdowns[i].node.parent();
| |
| switch (c.attr('data-end')) {
| |
| case 'remove':
| |
| c.remove();
| |
| return true;
| |
| case 'stop':
| |
| output(i, 0);
| |
| return true;
| |
| case 'toggle':
| |
| var toggle = c.attr('data-toggle');
| |
| if (toggle && $(toggle).length) {
| |
| $(toggle).css('display', 'inline');
| |
| c.css('display', 'none');
| |
| return true;
| |
| }
| |
| break;
| |
| case 'callback':
| |
| var callback = c.attr('data-callback');
| |
| if (callback && $.isFunction(module[callback])) {
| |
| output(i, 0);
| |
| module[callback].call(c);
| |
| return true;
| |
| }
| |
| break;
| |
| }
| |
| countdowns[i].countup = true;
| |
| output(i, 0);
| |
| return false;
| |
| } | |
|
| |
| function update () {
| |
| var now = Date.now();
| |
| var countdownsToRemove = [];
| |
| $.each(countdowns.slice(0), function (i, countdown) {
| |
| var diff = Math.floor((countdown.date - now) / 1000);
| |
| if (diff <= 0 && !countdown.countup) {
| |
| if (end(i)) countdownsToRemove.push(i);
| |
| } else {
| |
| output(i, Math.abs(diff));
| |
| }
| |
| });
| |
| var x;
| |
| while((x = countdownsToRemove.pop()) !== undefined) {
| |
| countdowns.splice(x, 1);
| |
| }
| |
| if (countdowns.length) {
| |
| window.setTimeout(function () {
| |
| update();
| |
| }, 1000);
| |
| }
| |
| }
| |
|
| |
| function getOptions (node) {
| |
| /*jshint bitwise:false*/
| |
| var text = node.parent().attr('data-options'),
| |
| opts = 0;
| |
| if (text) {
| |
| if (/no-leading-zeros/.test(text)) {
| |
| opts |= NO_LEADING_ZEROS;
| |
| }
| |
| }
| |
| return opts;
| |
| }
| |
|
| |
| $(function () {
| |
| var countdown = $('.countdown');
| |
| if (!countdown.length) return;
| |
| $('.nocountdown').css('display', 'none');
| |
| countdown
| |
| .css('display', 'inline')
| |
| .find('.countdowndate')
| |
| .each(function () {
| |
| var $this = $(this),
| |
| date = (new Date($this.text())).valueOf();
| |
| if (isNaN(date)) {
| |
| $this.text('BAD DATE');
| |
| return;
| |
| }
| |
| countdowns.push({
| |
| node: $this,
| |
| opts: getOptions($this),
| |
| date: date,
| |
| });
| |
| });
| |
| if (countdowns.length) {
| |
| update();
| |
| }
| |
| });
| |
|
| |
| }(window.countdownTimer = window.countdownTimer || {}, mediaWiki, jQuery));
| |
| //</source>
| |
|
| |
|
| /* 导航 */ | | /* 导航 */ |
/* 这里的任何JavaScript将为所有用户在每次页面载入时加载。 */
/* 切换立绘按钮(当前作废) */
$(document).ready(
function (){
$("#btn_2").click(
function (){
$("#btn_1").css("display","none");
$("#btn_2").css("display","none");
$("#btn_3").css("display","");
$("#btn_4").css("display","");
}
);
$("#btn_3").click(
function (){
$("#btn_1").css("display","none");
$("#btn_2").css("display","");
$("#btn_3").css("display","none");
$("#btn_4").css("display","");
}
);
$("#btn_4").click(
function (){
$("#btn_1").css("display","none");
$("#btn_2").css("display","");
$("#btn_3").css("display","");
$("#btn_4").css("display","none");
}
);
$("#btn_5").click(
function (){
$("#btn_1").css("display","");
$("#btn_2").css("display","");
$("#btn_3").css("display","");
$("#btn_4").css("display","");
}
);
});
/* Countdown */
importArticles({
type: "script",
articles: [
"wikia:c:dev:MediaWiki:Countdown/code.js"
]
});
/* 导航 */
$(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();
}, 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(){
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('/'),
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);
for (index = 0; index < length; index++) {
link += '/' + links[index];
subpages.append($('<a/>', {
text: ' ' + links[index],
href: link
}));
if (length - index - 1) subpages.append(" |");
}
$('#contentSub').prepend(subpages);
}
});