我使用phoneGap 1.1.0和iScroll 4.1.9构建iPhone& android app。
在android- scroll textarea工作正常。
但是,在iPhone上,textarea不会滚动
两根手指滚动在我的iPhone 3GS(iOS 5.0.1)上不起作用
有人有解决方案吗?
感谢。
答案 0 :(得分:0)
问题源于我认为您正在尝试做的事情,并禁用应用程序的“框架”滚动屏幕:
document.addEventListener('touchmove', function(e) {
e.preventDefault();
}, false);
不幸的是,我已经尝试了我能想到的所有组合,包括新的-webkit-overflow-scrolling: touch
CSS属性(无济于事)。尚未找到解决方案。
答案 1 :(得分:0)
我知道有点晚了,但我找到了一个解决方案:
此问题的答案会阻止UIWebView中的UIScrollView滚动: Disable Scroll on a UIWebView allowed?
我在MainViewController.m的viewDidLoad函数中添加了这段代码
for (UIView *view in webview.subviews) {
if ([view isKindOfClass:[UIScrollView class]]) {
UIScrollView *scrollView = (UIScrollView *)view;
scrollView.scrollEnabled = NO;
}
}
下一个问题是阻止iScroll处理TextArea上的事件,为此您需要获取iscroll的调试版本,以便您可以更改代码(第3行):
handleEvent: function (e) {
var that = this;
if(e.srcElement.tagName == "TEXTAREA") return; // don't handle textarea
switch(e.type) {
case START_EV:
if (!hasTouch && e.button !== 0) return;
that._start(e);
break;
case MOVE_EV: that._move(e); break;
case END_EV:
case CANCEL_EV: that._end(e); break;
case RESIZE_EV: that._resize(); break;
case WHEEL_EV: that._wheel(e); break;
case TRNEND_EV: that._transitionEnd(e); break;
}
}
并且也不会使用类似的if。
阻止你的textarea的默认这种组合对我有用。
-webkit和overflow css标签只是让它看起来更好。
呃,在ios 4上,滚动是由两根手指而不是一根完成的。