欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

動畫提交樣式實際上并不設置樣式

錢斌斌2年前7瀏覽0評論

我試圖在動畫完成后調用commitStyles(),以便樣式以一種可執行的方式保留在末尾(通過添加到內聯樣式)。然而,調用commitStyles似乎什么都不會發生,元素只是在動畫之后返回到它的初始樣式。

document.querySelector("button").addEventListener("click", function(evt) {
  var a = document.getElementById("target").animate([{
    transform: 'translateX(400px)'
  }], 1000);
  a.finished.then(() => a.commitStyles());
});

<div id="target">I can move</div>
<button>Move it</button>

動畫的默認填充是& quot無& quot,它使元素在動畫完成后恢復到其原始樣式。此時調用commitStyles基本上沒有任何作用。

相反,您可以使用& quot轉發& quot填充以保留動畫后的樣式。然后,在動畫結束后調用commitStyles(),并立即取消動畫,以確保它不再消耗資源。注意,設置填充本身可以達到持久化樣式的效果,但是有幾個缺點;例如,很難更改動畫設置的元素的任何樣式(不使用commitStyles ),瀏覽器必須無限期地維護動畫。

document.querySelector("button").addEventListener("click", evt => {
  document.getElementById("target").animate([{
    transform: 'translateX(400px)'
  }], {
    duration: 1000,
    fill: "forwards"
  }).finished.then(a => {
    a.commitStyles();
    a.cancel();
  });
});

<div id="target">I can move</div>
<button>Move it</button>