下面这些代码实在是看不懂,都不知道他正则在那里的作用,有没有大神帮忙注释下,万分感激!!!
// 代码可以直接复制运行(能写这代码的真的是大神啊):
YuGiOh
ROTATE
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
匹配css中
transform:rotate(100deg)
正则作用是提取出100
对
rotate(10deg)来说(rotate\([\-\+]?((\d+)(deg))\))有四个括号对应的$1-4 注意
\(是匹配(第二个括号
((\d+)(deg))第三个
(\d+)提取出10第四个
(deg)$4 = deg 说白了wt.replace ($2, parseFloat (RegExp.$3) + limit + RegExp.$4);limit=1把
10deg变成11deg的节奏 然后11变12...(以此类推)我个人感觉很多括号加的没意义 不知道写程序的人怎么想的
其中
wt = rotate(10deg)这两句执行完毕后
最后的
wt.replace ($2, parseFloat (RegExp.$3) + limit + RegExp.$4)实际就是
'rotate(10deg)'.replace('10deg', 10 + 1 + 'deg')=rotate(11deg)要实现的是一个旋转的动画效果。
正则在这的作用就是装逼,不用正则也很简单,就是实现每30毫秒转limit度的旋转效果;
不用正则大概这样:
var oriDeg=10,timer=null;
timer=setInterval(function(){
},30);
差不多就这么个意思;
正则用来拆分transform的值,再和limit拼接成不断变化的值;
比如:rotate(10deg);正则match会把它拆分成["rotate(10deg)", "rotate(10deg)", "10deg", "10", "deg"]这个结果,$1-$4分别对应为这个数组从1开始的值;