在以下示例中将这些值存储为变量(在 .scroll() 之外)是个好主意吗?
$(window).scroll(function(){
if ( $(document).height() <= ( $(window).height() + $(window).scrollTop() ) ) {
// position stuff
} else {
// other position stuff
}
});
我看到的唯一缺点是,在调整窗口大小时,应该再次检查高度。或者我只需要存储对象本身?
非常感谢任何反馈!
最佳答案
至少,在外部存储对 $(document)
和 $(window)
的引用绝对是一个好主意。 scroll
回调,因为滚动事件可能会重复且快速地触发。
var $win = $(window),
$doc = $(document);
$win.scroll(function(){
if ( $doc.height() <= ( $win.height() + $win.scrollTop() ) ) {
// position stuff
} else {
// other position stuff
}
});
按照您的要求进行操作并在回调之外存储文档和窗口高度应该不会有什么坏处 - 前提是您根据需要更新它们。处理所有这些问题的一个好方法是使用优秀的 jQuery throttle/debounce plugin ,它为您提供了一个简单的界面,以确保函数不会运行得太频繁。
关于javascript - 我应该将 $(document).height() 和/或 $(window).height() 存储为变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5656505/