使用變換和不透明度來避免觸發器佈局

更改某些 CSS 屬性將觸發瀏覽器同步計算樣式和佈局,這在你需要以 60fps 動畫時是一件壞事。

使用 lefttop 觸釋出局動畫。

#box {
  left: 0;
  top: 0;
  transition: left 0.5s, top 0.5s;
  position: absolute;
  width: 50px;
  height: 50px;
  background-color: gray;
}

#box.active {
  left: 100px;
  top: 100px;
}

演示需要 11.7 毫秒渲染, 9.8 毫秒繪畫

StackOverflow 文件

使用相同的動畫使用 transform 進行動畫處理。

#box {
  left: 0;
  top: 0;
  position: absolute;
  width: 50px;
  height: 50px;
  background-color: gray;

  transition: transform 0.5s;
  transform: translate3d(0, 0, 0);
}

#box.active {
  transform: translate3d(100px, 100px, 0);
}

演示相同的動畫,渲染時間1.3ms ,繪畫時間2.0ms

StackOverflow 文件