我正在为iOS Safari创建一个网络应用程序,并遇到了一个小障碍。
我的网络应用程序仅占用1024x768的屏幕空间,因此不需要滚动,但它确实需要能够缩放(它是PDF注释器)。
我使用了一个名为iNoBounce(https://github.com/lazd/iNoBounce/)的插件,它通过在touchmove / touchstart事件上触发evt.preventDefault()
来成功删除页面中的滚动。这很棒。
这样做的目的是删除缩放事件以及滚动事件。有没有办法删除滚动/弹性弹跳,但保留缩放iOS Safari?
非常感谢
答案 0 :(得分:1)
我设法通过聆听触摸事件对象上的一些值来解决此问题,特别是changedTouches.length
和scale
。
首先,我在文档var zoomLevel = 1
接下来,我将iNoBounce中的evt.preventDefault()
替换为:
if(evt.changedTouches.length === 1 && zoomLevel <= 1){
evt.preventDefault();
}
if(evt.changedTouches.length > 1){
zoomLevel = evt.scale;
}
这会查看正在使用的手指数量,如果页面比例不是100%,则会相应地采取相应措施。