avalon中如果通过js设置元素的多个style样式,则样式无法清除掉。
上图中语音的长度和点击后自动播放的动画样式是通过js设置的。
点击后播放代码:
var timerL = setInterval(
function(){
play.style.animation = "playLeftVoice 1s linear infinite";
if(time==0){
clearInterval(timerL);
}else{
time--;
}
},500);
语音长度控制代码:
if(element){
if(len<3){
element.style.width='63px';
}else{
element.style.width=(63+len)+'px';
}
i++;
}else{
i++;
}
这两个效果是两个函数分别实现的,先实现的语音播放功能,播放时测试动画可以正常运行与停止,后实现的控制语音长度,结果发现动画停止失效,点击语音之后图标动画一直在循环,检查代码发现play.style.animation = "playLeftVoice 1s linear infinite";这个样式一直存在,也尝试过不用定时器直接清除该样式,play.style.animation="",但是还是无效。
点击前的样式:
点击后的样式(语音播放后还是这样,动画样式清除不了)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
同学。你计时器停了木有?计时器内部变量的引用分离了没有