refresh()
更新边界值,并重新计算 ScrollObserver 实例的 基于函数的值。
当使用 基于函数的值 设置以下参数时,可以刷新这些参数
重复
轴
enter
leave
当容器尺寸改变时,无需调用 .refresh()
,这已在内部处理。
返回值
ScrollObserver 自身
refresh() 代码示例
import { animate, onScroll } from 'animejs';
const scrollSettings = {
enter: 20,
leave: 60,
}
const animation = animate('.square', {
x: '15rem',
rotate: '1turn',
ease: 'linear',
autoplay: onScroll({
container: '.scroll-container',
enter: () => `bottom-=${scrollSettings.enter} top`,
leave: () => `top+=${scrollSettings.leave} bottom`,
sync: .5,
debug: true,
})
});
animate(scrollSettings, {
enter: 90,
leave: 100,
loop: true,
alternate: true,
modifier: utils.round(0),
onUpdate: () => animation._autoplay.refresh()
});
<div class="scroll-container scroll-y">
<div class="scroll-content grid square-grid">
<div class="scroll-section padded">
<div class="large row">
<div class="label">scroll down</div>
</div>
</div>
<div class="scroll-section padded">
<div class="large row">
<div class="square"></div>
</div>
</div>
<div class="scroll-section">
</div>
</div>
</div>