iPhone中的可滚动<textarea> </textarea>

时间:2012-02-13 10:06:04

标签: iphone mobile cordova iscroll4

我使用phoneGap 1.1.0和iScroll 4.1.9构建iPhone&amp; android app。
在android- scroll textarea工作正常。
但是,在iPhone上,textarea不会滚动 两根手指滚动在我的iPhone 3GS(iOS 5.0.1)上不起作用 有人有解决方案吗? 感谢。

2 个答案:

答案 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上,滚动是由两根手指而不是一根完成的。