【问题标题】:Iscroll - Jquery - Get position on a list itemIscroll - Jquery - 获取列表项的位置
【发布时间】:2012-02-23 12:33:24
【问题描述】:

我遇到的错误如下:

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

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

会发生以下情况:

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

如何获取实际坐标?

【问题讨论】:

    标签: javascript jquery iscroll


    【解决方案1】:

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

    所以你可以像这样引用 iScroll 偏移

    var myScroll = new iScroll(...)
    alert(myScroll.y)  // -- will return your offset (negative number)
    

    【讨论】:

    • 是的,我昨天把那个拿出来了。但是你错了偏移量。 .position() 获取相对于#scroller div 的坐标。 .offset 获取相对于页面的坐标(不是窗口,而是整个文档)。 Sice 你的回答是正确的,我给你打勾;)
    【解决方案2】:

    添加iscroll.js

    getScrollY: function () { var that = this; return that.y; }, 
    

    【讨论】:

      猜你喜欢
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多