@keyframes动画结束后,javascript无法操纵css值
关键帧代码如下:@keyframes动画结束后,javascript无法操纵css值,javascript,jquery,html,css,animation,Javascript,Jquery,Html,Css,Animation,关键帧代码如下: #animate{ width:100px; height:100px; border:solid 1px #ccc; position:absolute; } @keyframes slideMiddle{ 0%{ left:20px; } 100%{ left:40px; } } .animate{slideMiddle,1s,both}
#animate{
width:100px;
height:100px;
border:solid 1px #ccc;
position:absolute;
}
@keyframes slideMiddle{
0%{
left:20px;
}
100%{
left:40px;
}
}
.animate{slideMiddle,1s,both}
然后我通过JavaScript将类animate
添加到元素ele
,它的工作方式与我预期的一样,但在动画完成后,我使用JavaScript设置ele.style.left=“80px”
,什么也没有发生,ele的位置与之前相同
然后我将类animate
修改为.animate{slideMiddle,1s}
,并将.animate
添加到ele,在动画完成后,当我设置ele.style.left=“80px”
时,它起作用
所以我的问题是:动画填充模式:两者都有代码>防止JavaScript操纵在关键帧中设置动画的css属性
更新,以下是我的代码:
HTML
我在chrome中打开devtool来观察
中的任何变化,大约5秒后,ele
确实将inlineleft
值更改为80px
,但它在页面中的位置没有变化,这很奇怪。我错过什么了吗 您确定要在动画完成后应用javascript吗?请出示您的JS代码。请提供您的完整信息code@Alex,@DCdaz抱歉这么晚才回复,我已经更新了我的问题:)你确定在动画完成后应用javascript吗?请出示您的JS代码。请提供您的完整信息code@Alex,@DCdaz抱歉这么晚才回复,我已经更新了我的问题:)
<div id='animate'></div>
var ele=document.getElementById('animate');
ele.classList.add('animate');
setTimeout(function(){
ele.style.left='80px';
},5000);