我使用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
元素时,情况确实如此:
那么,作为替代方案,有没有办法获取所有Waypoint对象的任何数组/对象,以便我可以获取这些triggerPoint
值?
答案 0 :(得分:0)
scrollTop
返回可滚动元素的滚动值。例如,$(window).scrollTop()
返回用户在页面上滚动的数量。我相信你对文档中元素的位置感到困惑,你可以通过调用.offset()
来获得。偏移将返回具有顶部和左侧坐标的对象。最后,您正在寻找$(elem).offset().top
。