虽然这不可能开箱即用,但可以这么说,您可以使用 iscroll 来做到这一点
因此,您可以将 iScroll 用于 iOS 和 Android 移动设备/平板电脑,并使用您目前在桌面设备上使用的方式。
iScroll 有许多选项可用于在某些事件上调用回调函数 - 例如“onScrollMove”、“onBeforeScrollEnd”、“onTouchEnd”等。不幸的是,没有选项可以在“每次位置变化”时执行回调,包括用户停止触摸屏幕后滚动动量引起的变化”。但是,添加一个很容易。
在 iScroll 源代码中,在第 127 行附近,靠近“//Events”注释,添加一个新变量:
onPosChange: null
然后,在第 308 行附近,在“_pos”函数的末尾,添加以下行:
if (this.options.onPosChange) this.options.onPosChange.call();
(如果存在,它将只调用“onPosChange”选项中传递的函数)。
完成后,以下示例代码将为 id="iscroll_container" 的 div 设置 iScroll,并在每次更改时将 Y 偏移量打印到控制台:
var myScroll;
function loaded() {
myScroll = new iScroll('iscroll_container', { onPosChange: actOnScroll });
}
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
//Use this for high compatibility (iDevice + Android)
document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);
function actOnScroll(){
console.log('got a scroll move! Vert offset is: ' + myScroll.y);
}
注意,Ben the Bodyguard Parallax Site 使用 iScroll 在 iPad 上工作(他们使用的是旧版本的 iscroll,并且不完全按照我在此处描述的方式进行操作)
另外,Life of Pi Parallax Site 在 iPad 上运行得非常好 - 我不知道他们是如何做到的,但至少证明这是可能的!