Javascript 我正在创建2个状态svg驱动的动画图标,但出现错误

Javascript 我正在创建2个状态svg驱动的动画图标,但出现错误,javascript,Javascript,我正在创建2个状态svg驱动的动画图标我使用图标转换生成器网站名称nucleoapp我上传了两个svg图标当我在html中包含完整代码时,它们给了我代码。它工作得很好,但当我删除脚本标记并剪切javascript代码并粘贴到我的javascript文件时,它给了我这个错误未捕获的语法错误:意外标记“;” ! 函数(){ “严格使用”; 如果(!window.requestAnimationFrame){ var a=零; window.requestAnimationFrame=函数(t,i

我正在创建2个状态svg驱动的动画图标我使用图标转换生成器网站名称nucleoapp我上传了两个svg图标当我在html中包含完整代码时,它们给了我代码。它工作得很好,但当我删除脚本标记并剪切javascript代码并粘贴到我的javascript文件时,它给了我这个错误未捕获的语法错误:意外标记“;”


! 函数(){
“严格使用”;
如果(!window.requestAnimationFrame){
var a=零;
window.requestAnimationFrame=函数(t,i){
var e=(新日期).getTime();
a | |(a=e);
var s=数学最大值(0,16-(e-a)),
n=window.setTimeout(函数(){
t(e+s)
},s);
返回a=e+s,n
}
}
函数r(t,i,e,s){
返回1>;
(t/=s/2)?e/2*t*t*t+i:-e/2*((t-=2)*t*t*t-2)+i
}
函数e(t){
返回t?[1,0]:[0,1]
}
函数t(t){
this.element=t,this.svg=function t(i){
var e=i.parentNode;
如果(“svg”!==e.tagName)e=t(e);
返回e;
}(this.element)、this.getSize()、this.states=this.element.queryselectoral(“.js-transition-icon\uu state”),this.time={
开始:空,
总数:200
},this.status={
交互:!1,
动画制作:!1
},this.animation={
效果:this.element.getAttribute(“数据效果”),
事件:this.element.getAttribute(“数据事件”)
},this.init()
}
t、 prototype.getSize=function(){
var t=this.svg.getAttribute(“viewBox”);
这个.size=t{
宽度:t.split(“”[2],
高度:t.split(“”[3]
}:this.svg.getBoundingClientRect()
},t.prototype.init=函数(){
var t=这个;
this.svg.addEventListener(t.animation.event,function()){
t、 status.animating | |(t.status.animating=!0,window.requestAnimationFrame(t.triggerAnimation.bind(t)))
})
},t.prototype.triggerAnimation=函数(t){
var i=这个.getProgress(t);
这个.动画图标(i),这个.检查进度(i)
},t.prototype.getProgress=函数(t){
返回this.time.start | |(this.time.start=t),t-this.time.start
},t.prototype.checkProgress=函数(t){
if(this.time.total>;t)window.requestAnimationFrame(this.triggerAnimation.bind(this));
否则{
此状态={
已交互:!this.status.interactived,
动画制作:!1
},this.time.start=null;
var i=e(this.status.interactived);
this.states[i[0]].removeAttribute(“aria隐藏”),this.states[i[1]].setAttribute(“aria隐藏”,“true”)
}
},t.prototype.animateIcon=函数(t){
如果(t>;本次总计){
t=此.time.total;
}
如果(0>;t){
t=0;
};
var i=e(this.status.interactived);
this.states[i[0]].style.display=t>;
this.time.total/2?“无”:“块”,this.states[i[1]]。style.display=t>;
this.time.total/2?“块”:“无”,“缩放”==this.animation.effect?this.scaleIcon(t,i[0],i[1]):this.rotateIcon(t,i[0],i[1])
},t.prototype.scaleIcon=函数(t,i,e){
var s=r(数学最小值(t,this.time.total/2),1,-.2,this.time.total/2)。toFixed(2),
n=r(数学最大值(t-this.time.total/2,0),.2,-.2,this.time.total/2)。toFixed(2);
this.states[i].setAttribute(“transform”、“translate”(+this.size.width*(1-s)/2+“”+this.size.height*(1-s)/2+“”)scale(+s+”),this.states[e].setAttribute(“transform”、“translate”(+this.size.width*n/2+“”+this.size.height*n/2+“”)scale(+1-n+))
},t.prototype.rotateIcon=函数(t,i,e){
var s=r(t,0,180,本次总计).toFixed(2);
this.states[i].setAttribute(“transform”、“rotate”(“+s+”+this.size.width/2+”+this.size.height/2+”),this.states[e].setAttribute(“transform”、“rotate”(+(180-s)++”+this.size.width/2+“+this.size.height/2+”)
};
var i=document.querySelectorAll(“.js转换图标”);
如果(i)
对于(var s=0;i.length>;s;s++)新的t(i[s])
}();
(1)请注意,
的脚本标记内的文本是HTML转义的。不能直接复制粘贴它

(2) 看看这样的事情

if(t>;this.time.total){

它一定是
t>this.time.total
,但是它被转义为
1 this.time.total
,然后一些语义无关的代码美化程序在
&
gt;
之间添加了一个空格


我想你现在明白了如何让脚本在

之外工作了,如果你没有指出抛出etror的线,很难告诉你。但是众所周知,这个错误与语法错误有关。你忘记了关闭一些括号,或者把;放错了位置。