Skip to content

js common.js的解释

Orangii edited this page Jul 2, 2021 · 1 revision

common.js的解释

本来这个js是用来把各个页面通用的js写到一起,结果现在写的挺乱的,在这里解释一下。

common.js 在页面底部被引用。

  • 加载动画中摇晃手机中的彩蛋 页面加载中会导入/js/loader.js文件,这是一个接收摇晃手机并产生对应事件的文件。自第十五行起即为摇晃事件需要执行的代码,其他为判断是否摇晃设备代码。 原理可以查看基于html5重力感应DeviceMotionEvent事件监听手机摇晃,其产生的样式可以对比Loading Animation Ⅲ。如果想修改灵敏值,可以修改文件中ShakeThreshold值。

目前并不是所有浏览器都支持摇晃操作,详见CanIUse.

  • 页面加载完成后的动作 在页面加载完成后会执行每个页面里都写了的 loaded() 函数
//when page loaded we should do something
window.addEventListener("load",function(){loaded()});
  • 获取请求参数 虽然是纯静态页面,但是有些功能还是需要类似PHP中的 $_GET
//get $_GET
function getQueryVariable(variable)
{
	var query = window.location.search.substring(1);
	var vars = query.split("&");
	for (var i=0;i<vars.length;i++) {
		var pair = vars[i].split("=");
		if(pair[0] == variable){
			if(pair[1]) return pair[1];
			else return true;
		}
	}
	return(false);
}
  • 页面跳转 toIndex() 用来跳转至传入的from参数中的链接地址; todonate() 只是单纯的跳转至赞赏页面。
//using in pay/donate page to turn back to index
function toIndex(){
	mainsec.rotateCard(90,0.5,"Y");
	setTimeout(function(){window.location.href=mainsec.fromurl},450)
}
//using in index to direct to donate page
function todonate(){
	var u = "index.html"+(getQueryVariable("page")?"?page="+getQueryVariable("page"):"");
	u = encodeURIComponent(u);
	mainsec.rotateCard(90,0.5,"Y");
	setTimeout(function(){window.location.href="donate.html?from="+u},450)
}
  • 获取上一页面地址(从from参数中) 用来确定往返回时返回到哪
//self run function to show the back button
(function(){
	if(getQueryVariable("from")){
		mainsec.backButton = 1
		mainsec.fromurl=decodeURIComponent(getQueryVariable("from"))
	}
})();