OpenLayers-2.13.1 + Cordova 在 WP10 或 WP8.1 中的平移效果不佳

OpenLayers-2.13.1 + Cordova not panning well in WP10 or WP8.1

我用过

html {
    -ms-touch-action: none;
    touch-action: none;
}

样式和

 this.CordovaView.DisableBouncyScrolling = true;

在 Cordova MainPage.xaml.cs 文件的 .cs 文件上。

有了这些修复,我可以进步这么多:

  1. 之前的状态:地图在每次触摸时反弹,不可能平移
  2. 使用后状态:不再弹跳,锅在使用一分钟后冻结。

我怎样才能使地图与平移事件一起运行,以便地图不会冻结,在此处和此处进行一些滑动后停止工作?为什么地图 "remembers" 一些地图外的触摸事件和缩放只用一根手指发生。

我的来源:

[1] https://github.com/vilic/cordova-plugin-fix-wp-bouncing

[2]Prevent scrolling out of CordovaView in Cordova for Windows Phone 8

[3] https://github.com/openlayers/ol2/issues/1290

接住!

我限制了屏幕大小,以便地图适合一个屏幕而无需滚动,然后我提到的样式问题使弹跳消失了。

我还通过动态添加 class 到 html 并将修复限制为 class:

来限制该页面的样式

js

    function applyClass(name,element,doRemove){
        if(typeof element.valueOf() == "string"){
            element = $wnd.document.getElementsByTagName(element)[0];
        }
        if(!element) return;
        if(doRemove){
            element.className = element.className.replace(new RegExp("\b" + '\s' + name + '\s' + "\b","g"), "");
        }else{      
            element.className = element.className + " " + name;
        }
    }
    applyClass('scrollfix', 'html', false); 

css

html.scrollfix {
    -ms-touch-action: none;
    touch-action: none;
}

修复来源:

[1] How to dynamically create CSS class in JavaScript and apply?