假设默认级别等于“1”,是否可以检测触摸设备的捏合(缩放)级别?原因是我希望根据捏合级别禁用页面元素(显示:无)。
如果可以将其放在一个设置缩放级别值的函数中,那就太好了,例如:
var ZOOM = 1;
function detectPinchZoomLevel(ev){
/*
//some calculations here...
ZOOM = 1.235 ; (for example)
*/
}
document.addEventListener('touchmove',detectPinchZoomLevel}, false);
感谢您的帮助
其实很简单:
var ZOOM = 1;
var viewport = window.visualViewport;
function resizeHandler() {ZOOM = viewport.scale;}
window.visualViewport.addEventListener('resize', resizeHandler);
我也有同样的问题。我发现的最好方法是将 window.innerWidth 与 window.visualViewport.width 进行比较。如果它们相等,则页面会缩小,如果不相等,则 window.innerWidth 更大(window.visualViewport.width 以 CSS 像素返回,这意味着如果进行缩放,则实际屏幕上的 CSS 像素会更少,因为 CSS像素变大)。它们的比例就是缩放级别。
一些注意事项: