ios 双击页面缩放 禁止

移动设备升级到iOS10了,发现了自带的Safari浏览器不再识别meta viewport了。以前我们都是用这个标签来让浏览器禁用缩放的。万恶的Apple~~

在iOS10之前都是通过

<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">

来强制不让手机浏览器缩放的,但是升级到iOS10后Safari不再识别这个meta标签。所以得用js来hack一下:
禁用双指缩放:

document.documentElement.addEventListener(‘touchstart‘, function (event) {
  if (event.touches.length > 1) {
    event.preventDefault();
  }
}, false);

禁用手指双击缩放:

var lastTouchEnd = 0;
document.documentElement.addEventListener(‘touchend‘, function (event) {
  var now = Date.now();
  if (now - lastTouchEnd <= 300) {
    event.preventDefault();
  }
  lastTouchEnd = now;
}, false);

如果在iOS10的Safari中设置了viewport,其实双击放大也是不生效的,所以个人觉得在iOS10上比较好的解决方案是先设置viewport,然后再用js禁用双指缩放即可,无需再设置禁用双击缩放。

同时给出这个解决方案的作者还提出了一个有情提示,如果任何一个子元素的touch事件设置了stopPropagation阻止事件冒泡的话,可能还是会失效,而且在iOS10中你的输入框字体最好不要小于16px,否则iOS在输入框获得焦点时可能还是会强制放大。

原文地址:http://stackoverflow.com/questions/37808180/disable-viewport-zooming-ios-10-safari

时间: 2024-08-02 22:53:40

ios 双击页面缩放 禁止的相关文章

解决ios双击页面上移问题

做webapp时,ios有个默认双击事件,会缩放页面,并将当前点击的位置居中到屏幕,本来也没什么,但是当页面中有fixed定位的元素时,这时候你就会神奇的发现,fixed元素所见不所得了! 还有就是页面会上移... //解决ios双击页面上移问题 //在项目中测试不紧input/button这些表单控件有这个问题,p,div等也有问题,于是乎就直接在body开刀了 (function() { var agent = navigator.userAgent.toLowerCase(); //检测是

禁止Html5在手机上屏幕页面缩放

最近测试html5页面,发现默认都允许用户缩放页面,或者在屏幕双击放大或缩小.即相当于这样设置 <meta name="viewport" content="width=device-width, initial-scale=1.0 user-scalable=yes" /> 如果要禁止此情形,修改相应参数即可. <meta content="width=device-width, initial-scale=1.0, maximum-s

禁止页面缩放功能

在手机浏览器浏览页面时,有时要禁止页面中的组件缩放,因为如果不阻止缩放的话,体验效果不好. 而实现禁止页面缩放,只需要在head里面加入下面一行即可. <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> 下面这行我也见过人用,但是效果不如上一行: <meta id="viewport

禁止页面缩放

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> 在这个里面主要有这几个属性: 1.width - viewport的宽度 2.height - viewport的高度 3.initial-scale - 初始的缩放比例 4.minimum-scale - 允许用户缩放到的最小比例 5.ma

webview支持页面缩放

1.webview支持页面缩放,普通经过以下设置就可满足80%的请求 //缩放开关 webView.getSettings().setSupportZoom(true); 设置此属性,仅支持双击缩放,不支持触摸缩放(在android4.0是这样,其他平台没试过) // 设置能否可缩放 webView.getSettings().setBuiltInZoomControls(true); 假如设置了此属性,那么webView.getSettings().setSupportZoom(true);也

Visual Studio跨平台开发实战(3) - Xamarin iOS多页面应用程式开发

原文 Visual Studio跨平台开发实战(3) - Xamarin iOS多页面应用程式开发 前言 在前一篇教学中, 我们学会如何使用Visual Studio 搭配Xcode 进行iOS基本控制项的操作. 但都是属于单一画面的应用程式. 这次我们要来练习如何透过Navigation Controller来建立多页面的iOS应用程式. 设定专案及画面 1. 开启Xamarin Studio 并建立新专案, 专案类型为iOS=>iPhone=>空白专案, 专案名称为02-Navigatio

在uwp仿IOS的页面切换效果

有时候我们需要编写一些迎合IOS用户使用习惯的uwp应用,我在这里整理一下仿IOS页面切换效果的代码. 先分析IOS的页面切换.用户使用左右滑动方式进行前进和后退,播放类似于FlipView的切换动画.导航到新页面时,使用页面前进的动画. UWP自带很多切换效果,位于 Windows.UI.Xaml.Media.Animation 中.与苹果的切换效果最接近的是 PaneThemeTransition (而不是EdgeUIThemeTransition). PaneThemeTransition

iOS 自定义页面的切换动画与交互动画

在iOS7之前,开发者为了寻求自定义Navigation Controller的Push/Pop动画,只能受限于子类化一个UINavigationController,或是用自定义的动画去覆盖它.但是随着iOS7的到来,Apple针对开发者推出了新的工具,以更灵活地方式管理UIViewController切换. 自定义导航栏的Push/Pop动画 为了在基于UINavigationController下做自定义的动画切换,先建立一个简单的工程,这个工程的rootViewController是一个

html5中让页面缩放的4种方法

html5中让页面缩放的4种方法 2013-10-22 14:45:03 分类: Web开发 1.viewport这种方法,不是所有的浏览器都兼容 2.百分比这种方法,可以兼容大部分浏览器,但是修改幅度比较大.main .login .txt1{margin-top:8.59375%; position:relative;}3.css transform这种方法,可以兼容大部分浏览器,但是页面的位置是居中的.w320{transform: scale(1,1);-ms-transform: sc