2

我遇到的错误如下:

在我的页面右侧,我有一个有趣点的列表(显示在页面左侧的地图上)。因为列表很长,所以我使用的是 iScroll 4(很棒的插件)。

但是,我想做的是在用户滚动列表时触发一个事件,这样我就可以检查用户当前可以看到哪些项目。iScroll 已经为此设置了一个事件,所以我有一个在需要时触发的函数。但是,我似乎无法获得列表项的正确坐标。

会发生以下情况:

  1. 当列表加载时,我得到第一个元素的 .offset() 值。offset.top = 35,因为我的列表开始于比页面顶部边缘低 35px 的位置。这很好。
  2. 当我滚动列表时;说我把它拉下来 500px;我希望新位置为 35px - 500px = -465px。但是,它仍然显示 35。尽管列表已移动,但滚动不会影响元素的坐标。

如何获得实际坐标?

4

2 回答 2

9

玩 iScroll,我想我找到了解决方案。该offset()函数是引用#scroller div的javascript,它不会改变。然而在内部,iScroll 使用它自己的 x 和 y 属性。

所以你可以像这样参考 iScroll 偏移量

var myScroll = new iScroll(...)
alert(myScroll.y)  // -- will return your offset (negative number)
于 2012-02-23T16:20:19.870 回答
1

添加 iscroll.js

getScrollY: function () { var that = this; return that.y; }, 
于 2013-06-24T15:06:06.647 回答