手势滑动时如何实现平滑的跟随动画效果?
我在用 Hammer.js 做一个图片滑动组件,手指拖动时想让图片实时跟着手势位置走,但目前动画很卡顿,感觉不是流畅跟随。
我试过直接在 pan 事件里改 transform: translateX(),也试过用 requestAnimationFrame 包裹,但还是不够顺滑,是不是哪里写错了?
const hammer = new Hammer(element);
hammer.on('pan', (e) => {
element.style.transform = <code>translateX(${e.deltaX}px)</code>;
});
首先确保你在处理事件时避免了不必要的计算和 DOM 操作。然后可以这样写:
这样做可以让浏览器在下一帧渲染之前只处理一次变换,减少重绘重排的次数。另外,确保你的 element 在 CSS 中设置了 will-change: transform; 这样也能帮助浏览器更好地优化渲染过程。希望这能解决你的卡顿问题。