Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Phonegap文本区域滚动_Javascript_Iphone_Ios_Cordova_Touch - Fatal编程技术网

Javascript Phonegap文本区域滚动

Javascript Phonegap文本区域滚动,javascript,iphone,ios,cordova,touch,Javascript,Iphone,Ios,Cordova,Touch,我有一个phonegap应用程序,通过应用document touch move和prevent.default()禁用了webview的滚动 问题是,如果文本溢出,我有两个文本区域要滚动。“防止”默认值会对此产生干扰 我已经尝试了几种解决方法,但结果不一,到目前为止最好的方法是使用以下函数来检测触摸移动事件的x和y,并且仅在其位于文本区域之外时应用“防止默认值” function preventBehavior(e) { console.log("event.targetTouch

我有一个phonegap应用程序,通过应用document touch move和prevent.default()禁用了webview的滚动

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

我已经尝试了几种解决方法,但结果不一,到目前为止最好的方法是使用以下函数来检测触摸移动事件的x和y,并且仅在其位于文本区域之外时应用“防止默认值”

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);
功能行为(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;
//修复iOS文本区域的滚动,避免默认设置
如果(x>20&&x<300&&y>80&&y<230){
//触摸位于第一个文本区域内
}否则,如果(x>20&&x<300&&y>245&&y<400){
//触摸属于第二个文本区域
}否则{
e、 预防默认值();
}
};
文档。addEventListener(“touchmove”,preventBehavior,false);
现在的问题是,如果文本区域不需要滚动,那么它会滚动整个web应用程序

有人对此问题有明确的解决方案吗

提前感谢。

如果您只想滚动文本字段,可以使用。它也适用于桌面web浏览器