【发布时间】:2013-01-17 11:11:56
【问题描述】:
我正在尝试使用浏览器滚动事件根据用户滚动的数量放置一个 html 块。该代码有效,但它导致了一个巨大的性能问题,这基本上迫使我的浏览器冻结。
任何关于为什么以及我可以做些什么来解决这个问题的见解将不胜感激。
<script type="text/javascript">
$('#content').scroll(function () {
var scroll = $('#content').scrollTop();
var $controls = $(".controls").clone();
if (scroll > 200) {
$(".controls").remove();
$('#header').append($controls);
}
else {
$(".controls").remove();
$('.banner').append($controls);
}
});
</script>
【问题讨论】:
-
您可以尝试缓存变量以启动。这些变量将被反复调用数百次
-
了解滚动事件每秒触发多次很重要
-
是的,卷轴就像疯了一样。您可以考虑使用某种去抖动或节流。
-
+1 用于去抖动/节流davidwalsh.name/javascript-debounce-function
标签: javascript jquery performance scroll