我对 ionic 框架的 native 滚动有问题。以下内容在浏览器中运行良好,但在编译到 iOS 时则不然。如果我按一定时间间隔轮询 $ionicScrollDelegate.getScrollPosition()
,我不会获得最新的位置值。只有当减速结束或用户再次触摸时,该值才会更新。我仔细研究了所有 ionic 滚动代码,但似乎 __scrollLeft
值来自更深层的内部 API,因为我尝试使用 native 滚动,而不是 js 滚动。
为了解决这个问题,我尝试使用 DOM API 来获取内容的窗口相对位置:
inversePosition = divContainer.getBoundingClientRect().left;
但这也同样缺乏更新。这让我觉得这甚至是不可能的。
有没有更直接的方式获取职位?我愿意自己深入研究 ionic js 包,但我什至不知道从哪里开始寻找核心 cordova 滚动 API 文档。
基本上,我的用例与 map 应用程序类似,我需要实时准确的滚动位置数据。
我打开了issue在 ionic 库中,但我怀疑任何人都会遇到 398 个其他 Unresolved 问题....
标记phonegap是因为phonegap也包裹了cordova,phonegap中的解决方案可能适用于这个问题。
最佳答案
检查iScroll
我没有在 ionic 项目中使用过它,只在backbone-cordova 项目中使用过它,但我认为它的工作原理是一样的。
它在 javascript 级别的滚动上添加了很多功能,实现起来有点困难,因为它使用了自己的 CSS 和 HTML 模型,但它为您提供了很多交换的东西,例如当前位置.
关于javascript - 有没有办法直接从 Cordova 获取滚动位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37201428/