我试图做一个动画的例子,但有一个关于积累的问题。第一次单击按钮时,平移动画完成,元素的位置永久更改。但是,在第二次单击时,它会再次执行平移动画,但这次不会保留最后一个位置。如何克服这个问题?我浏览了mdn文档并应用了可选部分,但未能完成此挑战。当做
https://jsfiddle.net/ja218pbr/19/
document.getElementsByTagName("button")[0].addEventListener("click", function() {
document.querySelectorAll("div")[0].animate([
{transform: 'translate(100%, 0)'}
], {
duration: 250,
composite: "accumulate",
iterationComposite: "accumulate",
fill: "forwards"
});
});
1条答案
按热度按时间zrfyljdw1#
如果我理解正确,您希望能够让对象从之前结束的位置再次滑动。要做到这一点,我们可以在每次单击按钮时获得boundingclientrect并计算新的平移距离,方法是基本上取对象的宽度并添加客户端rect的左侧距离,这将有效地允许矩形从之前结束的距离继续移动。我还删除了
composite
属性,因为它导致矩形跳过正确的位置。