获取下一个/上一个航路点

时间:2015-05-28 16:58:00

标签: javascript jquery jquery-waypoints

我使用Waypoints插件在滚动上创建一些精美的导航。因此,我可以强制用户滚动到下一个/上一个Waypoint,我试图收集当前,活动和下一个Waypoint的垂直滚动位置:

$('.waypoint').waypoint(function(direction) {
    var 
        currentWpId     = this.element.id,
        currentWpPos    = $('#'+currentWpId).scrollTop(),
        nextWpPost      = $('#'+currentWpId).next().scrollTop(),
        prevWpPost      = $('#'+currentWpId).prev().scrollTop();

    console.log( currentWpPos );
    console.log( nextWpPost );
    console.log( prevWpPost );

});

不幸的是,jQuery' scrollTop()函数返回所有元素的0。在做了一些阅读之后,我相信这是由于height: 100%;因为其他一些CSS要求而无法删除的元素的结果。 (虽然我不确定这是问题的根本原因。)有没有解决方法?

在寻找一些替代解决方案之后,我想到了Waypoints 插件必须知道我试图获取以触发航点事件的值!在查看this元素时,情况确实如此:

enter image description here

那么,作为替代方案,有没有办法获取所有Waypoint对象的任何数组/对象,以便我可以获取这些triggerPoint值?

1 个答案:

答案 0 :(得分:0)

scrollTop返回可滚动元素的滚动值。例如,$(window).scrollTop()返回用户在页面上滚动的数量。我相信你对文档中元素的位置感到困惑,你可以通过调用.offset()来获得。偏移将返回具有顶部和左侧坐标的对象。最后,您正在寻找$(elem).offset().top