“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 | + | if(m>n||m<0||n<0||size<0){ |
return; | return; | ||
} | } | ||
| − | for(var i=0;i< | + | else if(n-m-1<size){ |
| − | + | 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++; | ||
} | } | ||
| − | |||
| − | |||
| − | |||
} | } | ||
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);
})