窗口的高度和窗口的 scrollTop() 将为您提供用户视图中存在的偏移范围:
var minHeight = $(window).scrollTop()
var maxHeight = $(window).height()
var middleHeight = (maxHeight + minHeight) / 2;
您可以尝试使用视口选择器,例如:
http: //www.appelsiini.net/projects/viewport
这将为您提供所有可见元素。不需要插件,但可以简化选择
var visibleElements = $("div.box").filter(":in-viewport")
然后,您可以从此选择中查找最接近 middleHeight 的元素:
var $midElement;
var distance = null;
var currDistance = 0;
visibleElements.each(function(index, element) {
currDistance = Math.abs(middleHeight - $midElement.offset().top);
if ( distance == null || currDistance < distance ) {
$midElement = $(element);
distance = currDistance;
}
});
尚未对此进行测试,但它应该是正确的。