在坚果壳中,我正在尝试编写滚动跟踪。但是,我认为我的数学不适合计算html元素(section
)的50%偏移量。
有人可以看一遍并告诉我它是否错误/是否正确或者是否有更好的方法来计算50%的标记/偏移量。
// add the section elements into an array
var sections = $('section');
// define variables and arrays
var currentOffset = 0,
lastScrollTop = 0,
i = 0,
offsets = [],
sectionHeights = [];
// loop through sections and get 50% of height and add it to the .offset().top
for (i = 0; i < sections.length; i++) {
sectionHeights.push($(sections[i]).height() / 2);
offsets.push($(sections[i]).offset().top + sectionHeights[i]);
}
答案 0 :(得分:2)
你的数学是正确的。您唯一能做的就是使用jQuery .each
函数简化代码:
var currentOffset = 0,
lastScrollTop = 0,
i = 0,
offsets = [];
$('section').each(function(){
offsets.push($(this).offset().top + $(this).height() / 2);
});
请注意,如果您有一个动态页面,并且在客户端修改了部分位置或大小,则必须重新计算滚动位置。