MediaWiki:Gadget-background.js
来自滚动的天空Wiki
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
- Opera:按 Ctrl-F5。
// <syntaxhighlight lang="javascript">
$(function () {
var images = { // 图像只需要页面名(简体)
"云": "湛藍雲海",
"山丘": "初晴山丘",
"幻想": "幻想之光",
"8比特": "幽綠像素",
"梦之队": "暗夜街籃",
"荷鲁斯之眼": "法老殿堂",
"小丑乐园": "小丑驚魂夜",
"骷髅派对": "幽冥墓地",
"热带潮汐": "初晴山丘", // 没办法
"迷你关卡1": "初晴山丘",
"冬日": "靜謐雪鎮",
"晴天": "暗夜方陣",
"天空": "極寒高空",
"王牌": "虛幻國度",
"童话": "夢幻城堡",
"激光之城": "灼熱空間",
"绿茵战场": "綠茵戰場(背景)",
"极速挑战": "震蕩音域",
"金色圣诞节": "金色聖誕夜",
"双子星": "獨步未來", // 应该是三星
"迷你关卡2": "獨步未來",
"冠军赛": "冠軍賽場",
"狂热派对": "搖滾大陸",
"万圣节逃生": "南瓜森林",
"炫光": "空靈音域",
"星辰": "浩瀚時空",
"庙会": "月亮玉兔.jpg",
"森林": "原木森林",
"迷你关卡3": "原木森林",
"沙漠": "熾熱沙漠",
"赞歌": "讚歌神域",
"功夫": "功夫世界",
"糖果": "夢幻糖果",
"矩阵浪潮": "白晝方陣",
"Alone_Remix": "寰宇微芒",
"Faded": "時間之城",
"Faded_Remix": "失落之城",
"周年庆": "生日祝福",
"数码方阵": "熾熱芯片",
"解锁未来": "虛擬空間",
"捣蛋节": "幽霧迷林",
"Alone": "獨步未來",
"森林(新)": "原木森林",
"动感方块": "陽光幾何",
"极光之旅": "皚皚雪峰",
"奇妙甜品屋": "甜點盛宴",
"海底世界": "霞光之洋",
"影武士": "忠義之血",
"火山": "燃燒地獄",
"城市": "舊城小巷",
"科技": "科技之巔",
"俄罗斯方块": "像素之冬",
"亡灵之舞": "暗月之森",
"灼热未来": "科幻未來",
"马戏团": "怪奇馬戲團",
"圣诞福音": "炫彩聖誕夜",
"迷城": "電音幻陣",
"The_Spectre": "科幻之魂",
"海盗船": "迷霧奇航",
"迷你关卡4": "迷霧奇航",
"海战": "海盜傳奇",
"恶灵群舞": "寂夜密林",
"晨光熹微": "蔚藍晴空",
"美食诱惑": "美食天堂",
"Alone_II": "迷幻音域",
"VR幻境": "VR幻境(背景)",
"生日派对": "迷幻派對",
"精灵镇": "怪物乐园",
"电子迷宫": "電子迷宮(背景)",
"深空": "深度空間",
"几何迷阵": "幾何夜景",
"雷鬼": "雷鬼山谷",
"遗迹": "失落遺跡",
"街头篮球": "熱血街籃",
"百变圣诞夜": "狂歡雪鎮",
"霓虹": "動感音域",
"世界杯": "勝利之盃",
"春节": "如意新春",
"橄榄球": "榮譽之星",
"开普勒的梦": "迷茫宇宙",
"天空之城": "天空之城(背景)",
"万圣节": "萬聖森林",
"圣诞": "聖誕之夜",
"像素": "黑白像素",
"扑克": "撲克王國",
"万圣嘉年华": "午夜古堡",
"埃及": "埃及神廟",
"万圣惊魂夜": "血色墓地",
"The_Spectre_Remix": "灼熱之魂",
"微芯片": "霓光芯片",
"迷幻音浪": "迷幻音浪(背景)",
"音律派对": "靈動浪潮",
"落日余晖": "暮光之城",
"驯鹿之礼": "聖夜極光",
"海洋": "幽幻深海",
"蒸汽时代": "蒸汽工廠",
"机械动力": "工業之都",
"鬼侍": "大和之魂",
"怪物城市": "套娃世界",
"生日快乐": "生日慶典",
"四周年": "四周年慶典",
"玉兔祥云": "太陽玉兔.jpg",
"洞穴": "洞穴1",
"混沌": "法老2",
"Successful_Person": "梦幻音轨的背景.jpg",
"Rolling_Fanmade/法老": "法老1",
// "Rolling_Fanmade/洞穴": "洞穴1",
"Rolling_Fanmade/地心历险": "洞穴2",
"Rolling_Fanmade/云之港": "云之港1",
"Rolling_Fanmade/冰原": "冰原1",
"Rolling_Fanmade/Explorers": "Explorers1"
};
if (mw.config.get('skin') == 'timeless') {
var key;
var pageName = mw.config.get("wgNamespaceNumber") == 1 ? mw.config.get("wgTitle") : mw.config.get("wgPageName");
if (images[pageName]) {
key = pageName;
} else if (mw.config.get('wgCanonicalNamespace') == 'Project' && mw.config.get('wgTitle').split('/')[0] == '首页') {
key = 'Successful_Person';
} else {
var hashcode = 0;
for(var i=0; i<pageName.length; i++){
//溢出需要每次运算后立即处理,否则可能超过js数值的表示范围。
hashcode = hashcode*31+pageName.charCodeAt(i);
hashcode &= 0xffffffff;
}
var keys = Object.keys(images);
console.log('hashcode = ' + hashcode);
key = keys[(hashcode % keys.length + keys.length) % keys.length]; // 取模运算
}
console.log('[gadget-background] key = ' + key);
var $doc = $(document);
var $win = $(window);
var img = images[ key ];
if (img.search(/\.[a-z]+$/) == -1) {
img += '.png';
}
console.log('[gadget-background] img = ' + img);
var api = new mw.Api();
api.parse("[[File:" + img + "]]").done(function (html) {
var src = $("<div/>").html(html).find("img").attr("src");
if (!src) {
console.log('[gadget-background] 未能提取图片,以下为服务器返回的信息:');
console.log(html);
var $feedback = $("<a/>").html(wgULS("向开发者反馈", "向開發者反饋")).attr("href", "/wiki/MediaWiki_Talk:Gadget-background.js");
var $span = $("<span/>").append(wgULS("背景图片出错!如果刷新不能解决问题,请", "背景圖片出錯!如果刷新不能解決問題,請")).append($feedback).append("。");
return void mw.notify($span);
}
$("body").css({
backgroundImage: "url(" + src + ")",
});
$('body').addClass('background-image-toggled');
$(window).on("scroll", function () {
$("body").css("backgroundPositionY", $(document).scrollTop() / ($(document).height() - $(window).height()) * 100 + "%");
});
});
}
});
// </syntaxhighlight>