SCBOY乌龟雪插件

为论坛添加很棒的乌龟雪。

当前为 2021-12-08 提交的版本,查看 最新版本

// ==UserScript==
// @license      MIT
// @name         SCBOY乌龟雪插件
// @namespace    https://gitee.com/rustyhare
// @version      release 1.2
// @description  为论坛添加很棒的乌龟雪。
// @author       RustyHare
// @match        *://www.scboy.cc/*
// @grant        none
// ==/UserScript==


window.SnowRand=function(count){
	for(var i=0;i<count;i++){
		var obj=new Object();
		obj.domElement=document.createElement("div");
		obj.domElement.id="snow";
		obj.domElement.innerHTML="🐢";
		obj.domElement.style.position="fixed";
		obj.domElement.style.opacity=0.3;
		obj.domElement.style.color="snow";
		obj.domElement.style.fontSize=(Math.random()*200).toString()+"%";
		obj.domElement.style.top=Math.random()*document.body.scrollHeight.toString()+"px";
		obj.domElement.style.left=Math.random()*document.body.scrollWidth.toString()+"px";
		document.body.appendChild(obj.domElement);
		delete(obj);
	}
}
window.SnowBorder=function(count){
	for(var i=0;i<count;i++){
		var obj=new Object();
		obj.domElement=document.createElement("div");
		obj.domElement.id="snow";
		obj.domElement.innerHTML="🐢";
		obj.domElement.style.position="fixed";
		obj.domElement.style.opacity=0.3;
		obj.domElement.style.color="snow";
		obj.domElement.style.fontSize=(Math.random()*200).toString()+"%";
		var place=Math.random();
		if(place<0.4){//顶端
			obj.domElement.style.top=(Math.random()/8*window.screen.availHeight-5).toString()+"px";
			obj.domElement.style.left=(Math.random()*(window.screen.availWidth+10)-5).toString()+"px";
		}else if(place>0.4 && place<0.7){
			obj.domElement.style.top=(Math.random()*(window.screen.availHeight+10)-5).toString()+"px";
			obj.domElement.style.left=(Math.random()/8*window.screen.availWidth-5).toString()+"px";
		}else{
			obj.domElement.style.top=(Math.random()*(window.screen.availHeight+10)-5).toString()+"px";
			obj.domElement.style.left=(window.screen.availWidth-Math.random()/8*window.screen.availWidth+5).toString()+"px";
		}
		document.body.appendChild(obj.domElement);
		delete(obj);
	}
}

window.snow=function(num){//入口点,main函数
	window.SnowRand(num);
	window.wind=window.Wind()//把变量绑在window上可以防止其被函数卸载
	var int=window.setInterval("Refresh(window.wind.velX/60,window.wind.velY/60)",1000/144);

}


window.Wind=function(){//风向和风速的变化似乎是个马尔科夫链?
	var wind=new Object();
	wind.velX=0;
	wind.velY=9.8;
	//两个速度
	wind.windVelX=0;
	wind.windVelY=9.8;
	wind.accuCF=0;//该因子的增长速度是每次刷新+1(每秒15次刷新),上限为10000,风向每次变化的几率为accuCF/10000,
	wind.windChange=function(){
		if(wind.accuCF>Math.random()*10000){//抽中,使其在一个范围内回归
			wind.windVelX=(Math.random()*40)-20;
			wind.windVelY=5+(Math.random()*6);
			wind.accuCF=0;
			console.log("triggered");
		}else{//未抽中
			wind.accuCF+=1;
		}
		wind.velX+=(wind.windVelX-wind.velX)/150;
		wind.velY+=(wind.windVelY-wind.velY)/150;
	}
	wind.interval=setInterval("wind.windChange()",1000/15);
	return wind;
}

window.Refresh=function(x,y){
	$("div#snow").each(function(index,element){
		var top=parseFloat(this.style.top.slice(0,-2))+y*(1+parseFloat(this.style.fontSize.slice(0,-1))*0.003);
		var left=parseFloat(this.style.left.slice(0,-2))+x*(1+parseFloat(this.style.fontSize.slice(0,-1))*0.006);
		if((top<window.screen.availHeight+10)&&(left<window.screen.availWidth+10)&&(top>-10)&&(left>-10)){
			$(this).css("top",top.toString()+"px");
			$(this).css("left",left.toString()+"px");
		}else{
			$(this).remove();
			window.SnowBorder(1);
		}
	})
	//请使用jquery对象的attr,css方法!
	return "window.Refresh("+x.toString()+","+y.toString()+")";
}
$(".actGotop").attr("onclick", "console.log(233)")
window.snow(120)

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址