试试这个:
var isScrolledIntoView = function(elem) {
var $elem = $(elem);
var $window = $(window);
var docViewTop = $window.scrollTop();
var docViewBottom = docViewTop + $window.height();
var elemTop = $elem.offset().top;
var elemBottom = elemTop + $elem.height();
return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
$(window).on('scroll', function () {
$('#sidebar').toggle(!isScrolledIntoView('#footer'));
});
Run Code Online (Sandbox Code Playgroud)
参考:滚动后检查元素是否可见
在窗口滚动上调用该函数并检查是否footer可见.如果可见,它会隐藏sidebar其他节目.