“MediaWiki:Common.js”的版本间的差异

来自UtaWiki
跳转至: 导航搜索
第30行: 第30行:
 
var rand;
 
var rand;
 
var index=0;
 
var index=0;
if(m>n||m<0||n<0||size<0||(n-m+1)<size){
+
if(m>n||m<0||n<0||size<0){
 
return;
 
return;
 
}
 
}
for(var i=0;i<size;i++){
+
else if(n-m-1<size){
do {
+
for(var i=0;i<n-m;i++){
rand=Math.floor(Math.random()*(n-m)+m);
+
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++;
 
}
 
}
while(checkDup(rand,rands));
 
rands[index]=rand;
 
index++;
 
 
}
 
}
 
return rands;
 
return rands;

2014年7月18日 (五) 22:37的版本

/* 此处的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");
	}
}

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