scrollTop滚动频率太高了怎么办
时间: 2023-11-24 13:58:31 浏览: 129
如果 `scrollTop` 滚动频率太高导致页面性能下降,可以考虑使用节流(throttling)或防抖(debouncing)的方法来优化。节流的思路是在一定时间内只执行一次函数,防抖的思路是在一定时间内只执行最后一次函数。
下面是一个简单的节流和防抖的实现:
节流:
```js
function throttle(func, delay) {
let timer = null;
return function() {
clearTimeout(timer);
timer = setTimeout(() => {
func.apply(this, arguments);
}, delay);
}
}
window.addEventListener('scroll', throttle(function() {
// 执行操作
}, 200));
```
防抖:
```js
function debounce(func, delay) {
let timer = null;
return function() {
clearTimeout(timer);
timer = setTimeout(() => {
func.apply(this, arguments);
}, delay);
}
}
window.addEventListener('scroll', debounce(function() {
// 执行操作
}, 200));
```
这样可以有效减少 `scrollTop` 的滚动频率,提高页面性能。
阅读全文