我有一个phonegap应用程序,其中通过应用文档触摸移动和prevent.default()禁用了Webview的滚动。

问题是如果文本溢出,我有两个文本区域要滚动。防止默认值会对此产生干扰。

我已经尝试了几种解决方法,但结果却好坏参半,到目前为止,最好的方法是使用以下功能来检测触摸移动事件的x和y,并且仅在文本区域之外时才使用prevent default。

function preventBehavior(e)
{
    console.log("event.targetTouches[0].pageX = " + event.targetTouches[0].pageX + " event.targetTouches[0].pageY = " + event.targetTouches[0].pageY);

    var x = event.targetTouches[0].pageX;
    var y = event.targetTouches[0].pageY;

    //fix the scroll of textareas for iOS by avoiding prevent default in them
    if (x > 20 && x < 300 && y > 80 && y < 230){
        //touch falls within first text area
    }else if (x > 20 && x < 300 && y > 245 && y < 400){
        //touch falls within second text area
    }else{
        e.preventDefault();
    }
};
document.addEventListener("touchmove", preventBehavior, false);

现在的问题是,如果文本区域不需要滚动,则它将滚动整个Web应用程序。

有没有人可以解决此问题?

提前致谢。

最佳答案

如果您只想滚动文本字段,则可以使用iscroll.js。它也可以与桌面Web浏览器一起找到。

09-25 22:54