移动端页面滚动卡顿,如何优化CSS动画和过渡效果?
我在开发一个移动端列表页,给列表项加了这样的CSS过渡效果:
.list-item {
transition: transform 0.3s ease, opacity 0.3s ease;
}
.list-item:hover {
transform: translateY(-2px);
opacity: 0.8;
}
但滚动到有动画的列表项时特别卡顿,我试过把transform改成translate3d,也尝试过把动画属性放到will-change里,但效果不明显。难道只能完全去掉过渡效果吗?有没有更好的优化方案?
然后在touchstart的时候给元素加.list-item-active类,不要依赖hover,移动端hover会引发页面重排。
另外确保父容器没开启 overflow: scroll 或 contain: paint,这在移动端会干掉层合成,让动画变卡。