ScrollTrigger.config
ScrollTrigger.config( vars:Object )
允许您配置 ScrollTrigger 某些全局行为,例如limitCallbacks
参数
vars: 对象
一个配置对象,包含你想要影响的属性,例如:
{ limitCallbacks: true }
细节
允许你配置 ScrollTrigger 的某些全局行为,例如:
- limitCallbacks [布尔值]- 如果设置为
true
,当 active 状态发生切换时,ScrollTrigger 才会触发回调函数(onEnter、onLeave、onEnterBack、onLeaveBack)。切换。例如,如果你有一个包含 100 个元素的网格,每个元素都关联了一个 ScrollTrigger,并且任何时候只有 10 个在屏幕上显示,当你滚动页面使只有第 50 - 60 个盒子显示出来并重新加载页面时,limitCallbacks: true
将跳过onEnter
第 1 - 49 个元素的回调。false
默认的 limitCallbacks 值为onEnter
在这种情况下,第 1 - 60 个元素的回调都会被触发。 - autoRefreshEvents [字符串]- 默认情况下,ScrollTrigger 会在以下事件上执行 refresh(): "visibilitychange,DOMContentLoaded,load,resize",但你可以选择指定其中一部分事件。例如,如果你不希望它在
visibilitychange
(当浏览器标签页从隐藏变为可见时)刷新,你可以设置为autoRefreshEvents: "DOMContentLoaded,load,resize"
. (3.6.0 版本新增) - syncInterval [数字]- 默认情况下,ScrollTrigger 每隔 200 毫秒检查一次滚动位置,并相应地更新内容。这样做的目的是实现两个关键功能:1)一些非常旧的浏览器在触摸滚动时可能不会触发“scroll”事件,这有助于解决这个问题(不过现在这种情况极为罕见),2)它保持了速度跟踪功能的准确性。如果速度数据仅在滚动事件中更新,在停止滚动后将不会归零。因此你可以修改同步的时间间隔(以毫秒为单位),比如如果你想要有效地禁用它可以设置为
ScrollTrigger.config({syncInterval: 999999999 });
. - ignoreMobileResize如果
true
,垂直方向上的调整尺寸(占视口高度的 25%)在仅支持触摸设备上不会触发ScrollTrigger.refresh(),避免在重新计算起始/结束值时可能发生的跳跃。请注意,如果你跳过了 refresh(),起始/结束触发位置可能会不准确,但在许多情况下,这优于由于新起始/结束位置导致的视觉跳跃。(3.10.0 版本新增)
示例
// only fire callbacks when the active state toggles
ScrollTrigger.config({
limitCallbacks: true,
ignoreMobileResize: true,
});
ScrollTrigger.config()
在 3.3.4 版本中新增。