По крайней мере, определенно хорошая идея хранить ссылки на $(document)
и $(window)
вне обратного вызова scroll
, поскольку событие прокрутки может запускаться многократно и быстро.
var $win = $(window),
$doc = $(document);
$win.scroll(function(){
if ( $doc.height() <= ( $win.height() + $win.scrollTop() ) ) {
// position stuff
} else {
// other position stuff
}
});
Не мешало бы делать так, как вы просите, а также сохранять высоту документа и окна за пределами обратного вызова & mdash; при условии, что вы обновляете их по мере необходимости. Хороший способ справиться со всем этим - использовать превосходный плагин jQuery throttle / debounce , который предоставляет простой интерфейс, позволяющий убедиться, что функция не запускается слишком часто.