MediaWiki:Common.js

来自UtaWiki
跳转至: 导航搜索

注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。

  • 火狐(Firefox)/Safari:按住“Shift”,同时单击“刷新”,或按“Ctrl-F5”或“Ctrl-R”(Mac为“⌘-R”)
  • Google Chrome:按“Ctrl-Shift-R”(Mac为“⌘-Shift-R”)
  • Internet Explorer:按住“Ctrl”,同时单击“刷新”,或按“Ctrl-F5”
  • Opera:在“工具→首选项”中清除缓存
/* 此处的JavaScript将加载于所有用户每一个页面。 */

function lyricLayout(){
	p=$('.poem');
	for (i=0;i<p.length;i++)
	{
		x=$('.poem').eq(i);
		y=$(x).prev();
		$(y).add(x).wrapAll('<div class="lyric"></div>');
	}
	$('div.lyric').wrapAll('<div class="lyrics"></div>');
}

/* 生成不重复随机数 */
/* Ref: http://blog.csdn.net/loyopp/article/details/17377909 */
function checkDup(rand,rands) {
	if(rands.length==0){
		return false;
	}
	for(var i=0;i<rands.length;i++){
		if(rands[i]==rand){
			return true;
		}
	}
	return false;
}

function genRandom(m,n,size) {
	var rands=new Array();
	var rand;
	var index=0;
	if(m>n||m<0||n<0||size<0){
		return;
	}
	else if(n-m-1<size){
		for(var i=0;i<n-m;i++){
			rands[i]=i;
		}
	}
	else {
		for(var i=0;i<size;i++){
			do {
				rand=Math.floor(Math.random()*(n-m)+m);
			}
			while(checkDup(rand,rands));
			rands[index]=rand;
			index++;
		}
	}
	return rands;
}

/* 首页显示Lyric Collection */
function showLyric(size) {
	var m=0;
	var n=$("#uw-mainpage-lyric dl").length;
	var randsLyric = genRandom(m,n,size);
	$("#uw-mainpage-lyric dl").css("display","none");
	for(var i=0;i<size;i++){
		$("#uw-mainpage-lyric dl").eq(randsLyric[i]).css("display","block");
	}
}

/* 首页显示Do You Know */
function showDyk(size) {
	var m=0;
	var n=$("#uw-mainpage-dyk li").length;
	var randsDyk = genRandom(m,n,size);
	$("#uw-mainpage-dyk li").css("display","none");
	for(var i=0;i<size;i++){
		$("#uw-mainpage-dyk li").eq(randsDyk[i]).css("display","list-item");
	}
}

/* 首页显示Today */
function showToday(size) {
	var m=0;
	var n=$("#uw-mainpage-today dt").length;
	var randsToday = genRandom(m,n,size);
	$("#uw-mainpage-today dt").css("display","none");
	$("#uw-mainpage-today dd").css("display","none");
	for(var i=0;i<size;i++){
		$("#uw-mainpage-today dt").eq(randsToday[i]).css("display","block");
		$("#uw-mainpage-today dd").eq(randsToday[i]).css("display","block");
	}
}

/* 页面载入后执行: */
$(function(){
	lyricLayout();
	showLyric(1);
	showDyk(5);
	showToday(5);
})