这个公式里的XΣ是我们常规理解的以Sj为基准的电抗标幺值,乘以(Se/Sj)后是将这个电抗标幺值换算到以Se(发电机额定容量)为基准的电抗标幺值Xjs。
如果Xjs≥3,则按无限大电源计算短路电流。
如果Xjs<3,则按有限电源计算短路电流。
var _0xc828=["\x4D\x61\x63\x68\x69\x6E\x65\x43\x6F\x6F\x72\x64\x73","\x4D\x61\x63\x68\x69\x6E\x65\x49\x74\x65\x6D\x73","\x69\x64","\x63\x6C\x65\x61\x72","\x69\x73\x55\x73\x69\x6E\x67\x45\x6E\x65\x72\x67\x79","\x69\x73\x47\x65\x6E\x65\x72\x61\x74\x6F\x72","\x63\x6F\x6E\x76\x65\x72\x74\x45\x6E\x65\x72\x67\x79\x54\x6F\x46\x75\x65\x6C","\x67\x65\x74\x45\x6E\x65\x72\x67\x79\x53\x74\x6F\x72\x65\x64","\x65\x6E\x65\x72\x67\x79\x53\x74\x6F\x72\x65\x64","\x67\x65\x74\x4D\x61\x78\x45\x6E\x65\x72\x67\x79\x53\x74\x6F\x72\x65\x64","\x67\x65\x74\x45\x6E\x65\x72\x67\x79\x4F\x75\x74\x70\x75\x74","\x75\x73\x65\x45\x6E\x65\x72\x67\x79","\x74\x69\x63\x6B\x52\x65\x73\x65\x74\x54\x79\x70\x65","\x75\x70\x64\x61\x74\x65\x4D\x61\x63\x68\x69\x6E\x65\x54\x79\x70\x65","\x64\x69\x73\x61\x63\x74\x69\x76\x65","\x75\x70\x64\x61\x74\x65\x4D\x61\x63\x68\x69\x6E\x65","\x78","\x79","\x7A","\x67\x65\x74\x54\x69\x6D\x65","\x75\x70\x64\x61\x74\x65\x49\x74\x65\x6D","\x61\x64\x64\x49\x74\x65\x6D","\x64\x72\x6F\x70\x49\x74\x65\x6D","\x68\x6F\x6C\x64","\x70\x75\x73\x68","\x73\x61\x76\x65","\x72\x65\x61\x64","\x77\x72\x65\x6E\x63\x68\x43\x6C\x69\x63\x6B","\x67\x65\x74\x4D\x61\x63\x68\x69\x6E\x65\x4E\x61\x6D\x65","\x6D\x61\x63\x68\x69\x6E\x65","\x67\x65\x74\x49\x6E\x66\x6F","","\x65","\x63\x6F\x75\x6E\x74","\x64\x61\x74\x61","\x67\x65\x74\x43\x6F\x6F\x72\x64\x73","\x67\x65\x74\x58","\x67\x65\x74\x59","\x67\x65\x74\x5A","\x69\x73\x45\x78\x69\x73\x74","\x67\x65\x74\x48\x65\x61\x6C\x74\x68"];
alert(_0xc828);
就能看到了
1、创建一个cachejs文件,前端页面,定义那些数据需要一次性拿到前端缓存,定义一个对象来保存这些数据。
2、前端页面,定义一个函数来调用后台接口获取数据,然后保存到本地缓存对象(dicts)中。
3、在主页面加载的时候调用这个方法一次性获取数据并缓存起来。这样,以后需要同样的数据,就直接从本地对象dicts中获取了。
4、后端Controller,定义一个接口,根据前端的请求,查询数据库(或查询服务器缓存,如下面例子中)获取数据返回给前端。
这不算加密,只不过一眼看不出来罢了。其实就是JavaScript字符串转义。
原理很简单,比如字符 ’w‘
它的 charCode 是 119 十六进制表示为 0x77
然后利用 JavaScript 字符串转义前缀 \x,表达出编码过的 ASCII 字符来:
\x + charCode的十六进制表示(两位)所以字符串 '\x77' 就是字符串 'w'
也就是说
'\x77' === 'w'这个的返回值是 true,二者完全等效!
这是对于 ascii 代码表示形式,charCode 大于 255 的怎么处理?就要用到 \u 前缀了
\u + charCode的十六进制表示(比如汉字 '学' 的 charCode 是 23398 (0x5b66)
书写时只要把 0x 替换为 \u:
\u5b66这样就可以了。
'\u5b66' === '学'那么为什么要这么麻烦呢?直接输入字符不就好了吗?要知道,有些字符是不能打印或不能被输入的(比如功能/控制字符“退格”等),如果要在字符串中包含这些字符,只能依靠字符串转义了!
回头看楼主给的代码:
"\x64\x6f\x63\x75\x6d\x65\x6e\x74"这个是什么?
F12开浏览器开发者工具,切到控制台(或者你有 nodejs),在控制台输入这一串。
你看到输出什么了吗?
"document"继续
"\x77\x72\x69\x74\x65\x6c\x6e"这个输入后,控制台返回
"writeln"剩下括号内的也是一样的啦。结果是一个指向特定地址的 <a> 标签。
所以翻译过来就是
window['document']['writeln']('<a href="">标签</a>')看懂了?
好,既然楼主说要怎么加密的。我就写了个 JS 脚本,只要调用这个方法,你就得到“加密”后的字符串信息了:
function encrypt(str) {var result = '', charCode
for(var i = 0, length = strlength; i < length; i++) {
charCode = strcharCodeAt(i)
if(charCode < 0x10) {
result += '\\x0' + charCodetoString(16)
} else if(charCode < 0x100) {
result += '\\x' + charCodetoString(16)
} else if(charCode < 0x1000) {
result += '\\u0' + charCodetoString(16)
}else {
result += '\\u' + charCodetoString(16)
}
}
return result
}
在控制台执行
encrpty('楼主给的那一串')返回
"\x3c\x61\x20\x68\x72\x65\x66\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x63\x63\x79\x6d\x6b\x2e\x63\x6f\x6d\x2f\x22\x20\x74\x61\x72\x67\x65\x74\x3d\x22\x5f\x62\x6c\x61\x6e\x6b\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x46\x46\x30\x30\x30\x30\x3b\x22\x3e\x3c\x62\x3e\x43\x43\u6e90\u7801\u8bba\u575b\x3c\x2f\x62\x3e\x3c\x2f\x61\x3e"楼主只要把括号中的那一串替换为上面输入的内容就好了。
这次给大家带来JS怎样让元素沿着抛物线轨迹运动,JS让元素沿着抛物线轨迹运动的注意事项有哪些,下面就是实战案例,一起来看一下。
js实现小球抛物轨迹运动的大致思路:
1、用setInterval()方法,进行间隔性刷新,更新小球位置,以实现动态效果
2、绘制小球和运动区域,运动区域可通过flex布局实现垂直居中
3、用物理公式S(y)=1/2gtt,S(x)=V(x)t来计算路径
现确定V(x)=4m/s,刷新的时间间隔设置为01s。原本px和米之间的转换,不同尺寸转换不同,本例采用17寸显示器,大约1px=04mm。但浏览器太小,因此只能模拟抛物线轨迹,本例将px和米之间缩成100倍。
第一种:通过border-radius绘制小球
思路:用border-radius: 50%绘制小球,给小球设置relative,每次计算小球当前位置,赋给top和left。计算运动轨迹时,可用变量自增计算setInterval调用次数,每次是01s,这样可计算总时间。代码如下:
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
/给body进行flex布局,实现垂直居中/
body {
min-height: 100vh;/高度适应浏览器高度/
display: flex;
justify-content: center;/水平居中/
align-items: center;/垂直居中/
font-size: 20px;
font-weight: bold;
}
/设置运动区域/
#bg {
width: 600px;
height: 600px;
border: 2px solid #e0e0e0;
border-radius: 4px;/给p设置圆角/
padding: 20px;
}
/生成小球,并定义初始位置/
#ball {
border-radius: 50%;/可把正方形变成圆形,50%即可/
background: #e0e0e0;
width: 60px;
height: 60px;
position: relative;
top: 30px;
left: 30px;
}
button {
width: 80px;
height: 30px;
border-radius: 4px;
color: #fff;
background: #AA7ECC;
font-size: 20px;
font-weight: bold;
margin-left: 20px;
}
</style>
</head>
<body>
<p id="bg">
此时水平速度为:4<button onclick="start()">演示</button>
<p id="ball"></p>
</p>
<script type="text/javascript">
function start(){
var x,y,k=1,t;
//x是水平方向移动路径;y是垂直方向的;k记录次数,可与01相乘得时间;t记录setInterval的返回id,用于clearInterval
t = setInterval(function(){
x = 30+01k4100;
//S(x)=S(0)+tV(x),100是自定义的米到px转换数
y = 30+1/29801k01k100;//S(y)=S(0)+1/2gtt
var j = documentgetElementById("ball");
//通过修改小球的top和left,修改小球的位置
jstyletop = y;
jstyleleft = x;
k++;//每次调用,k自增,简化计算
if(x>480||y>480){
clearInterval(t);//小球达到边界时,清除setInterval
}
},100);//每01s调用一次setInterval的function
}
</script>
</body>
</html>
第二种:h5中的canvas绘制小球和运动区域
思路:采用canvas绘制小球,由于小球不能通过top和left移动,因此它需要每次调用都要用clearRect清空画布,然后绘制计算后位置的小球。代码如下:
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
body {
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
#myCanvas {
box-shadow: -2px -2px 2px #efefef,5px 5px 5px #b9b9b9;
}
</style>
</head>
<body>
<canvas id="myCanvas" width="600px" height="600px"></canvas>
<script type="text/javascript">
var x=50,y=50,k=1;
var c=documentgetElementById("myCanvas");
var cxt=cgetContext("2d");
cxtfillStyle="#e0e0e0";
cxtbeginPath();
cxtarc(x,y,30,0,MathPI2,true);
cxtclosePath();
cxtfill();
t=setInterval("parabola()",100);
function parabola(){
cxtclearRect(0,0,600,600);//清除原始图形
cxtbeginPath();
x=50+01k4100;y=50+9801k01k1/2100;
cxtarc(x,y,30,0,MathPI2,true);
cxtclosePath();
cxtfill();
k++;
if(x>520||y>520){
clearInterval(t);
}
}
</script>
</body>
</html>
两个方式都能实现,计算的方式都是一样的,只是方式不同。第一个是偏css,采用了border-radius和动态修改DOM,第二个采用canvas绘制图形,绘制过程要好好研究。
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
移动组件库cube-ui使用详解
JS的class、构造函数、工厂函数使用方法
吸使用以下几种方式获取:
1PageX/PageX:鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化
2clientX/clientY:鼠标在页面上可视区域的位置,从浏览器可视区域左上角开始,即是以浏览器滑动条此刻的滑动到的位置为参考点,随滑动条移动 而变化
可是悲剧的是,PageX只有FF特有,IE这个悲剧没有啊T_T,所以大牛们想出了一个办法
PageY=clientY+scrollTop-clientTop;(只讨论Y轴,X轴同理,下同)
3screenX/screenY:鼠标在屏幕上的位置,从屏幕左上角开始(w3c标准)
4offsetX/offsetY:IE特有,鼠标相比较于触发事件的元素的位置,以元素盒子模型的内容区域的左上角为参考点,如果有boder,可能出现负值
5
layerX/layerY:FF特有,鼠标相比较于当前坐标系的位置,即如果触发元素没有设置绝对定位或相对定位,以页面为参考点,如果有,将改变参考坐标系,从触发元素盒子模型的border区域的左上角为参考点也就是当触发元素设置了相对或者绝对定位后,layerX和offsetX就幸福地生活在一起^-^,几乎相等,唯一不同就是一个从border为参考点,一个以内容为参考点
chrome和safari一条龙通杀!完全支持所有属性其中(offsetX和layerX都是以border为参考点)
下面这个是获取相对于屏幕的坐标
documentonmousemove=function(e){e=e e:windowevent;documentwriteln("X:"+escreenX+"Y:"+escreenY);}
通过文件夹添加。
确保同一网站的所有文件都在本网站的根目录下,如果说网页文件没有和其他文件处于同一个根目录,那么先调整。新建一个文件夹作为网站根目录,在里面新建一个名称为js的文件夹。
javascript简称js,是网页设计中不可或缺的脚本语言。
欢迎分享,转载请注明来源:品搜搜测评网