更新 - 作者固定问题
显然,截至今天(2013 年 2 月 4 日),杰克已经解决了这个问题。值得从他的Github页面获取最新版本。
以前的解决方案
好的,我无法让 jScrollPane 正常工作。这并不是说你不会,但我也在使用自定义调整大小来调整 iframe 的大小,我认为它在 jScrollPane 的尺寸计算方面表现不佳。
解决方案
然而,我确实设法让它工作,这要归功于更一般的 iOS iframe 滚动问题的解决方案,这要归功于stackoverflow 上的 Sharon。我对她的代码进行了一些调整,以便更好地使用 colorbox。请注意,这仅适用于您控制 iframe 内容的情况
只需将以下代码放入您的 iframe 中:
setTimeout(function () {
var startY = 0;
var startX = 0;
var b = document.body;
b.addEventListener('touchstart', function (event) {
startY = event.targetTouches[0].screenY;
startX = event.targetTouches[0].screenX;
});
b.addEventListener('touchmove', function (event) {
event.preventDefault();
var posy = event.targetTouches[0].screenY;
var h = parent.document.getElementById("cboxLoadedContent");
var sty = h.scrollTop;
var posx = event.targetTouches[0].screenX;
var stx = h.scrollLeft;
h.scrollTop = sty - (posy - startY);
h.scrollLeft = stx - (posx - startX);
startY = posy;
startX = posx;
});
}, 1000);
滚动并不紧张,虽然您没有原生滚动的逐渐减慢,但当您抬起手指时它就会停止。另外,没有滚动条。除此之外,它是一个完美的解决方案。
包含 Sharon 解决方案的页面提供了一种替代方案,可用于尝试不控制 iframe 的场景。