获得50%的HTML元素位置

时间:2015-10-16 13:45:11

标签: javascript jquery html scroll

在坚果壳中,我正在尝试编写滚动跟踪。但是,我认为我的数学不适合计算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]);
}

1 个答案:

答案 0 :(得分:2)

你的数学是正确的。您唯一能做的就是使用jQuery .each函数简化代码:

var currentOffset = 0,
    lastScrollTop = 0,
    i = 0,
    offsets = [];

$('section').each(function(){
    offsets.push($(this).offset().top + $(this).height() / 2);
});

请注意,如果您有一个动态页面,并且在客户端修改了部分位置或大小,则必须重新计算滚动位置。

Working fiddle