移动端web缩放有两种:

1.双击缩放;

2.双指手势缩放。

iOS 10以前,iOSAndroid都可以通过一行meta标签来禁止页面缩放

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />

iOS 10开始,meta设置在Safari内无效了。

 后来在网上看到一个解决方案:

window.onload=function () {

document.addEventListener('touchstart',function (event) {

if(event.touches.length>1){

event.preventDefault();

}

})

var lastTouchEnd=0;

document.addEventListener('touchend',function (event) {

var now=(new Date()).getTime();

if(now-lastTouchEnd<=300){

event.preventDefault();

}

lastTouchEnd=now;

},false)

}

经过测试,这种方法只能禁止双击缩放。只好继续找解决方案了。

原来在iOS里有一组双指手势操作的事件:gesturestartgesturechangegestureend

在上面的js方法里加入下面的事件监听:

document.addEventListener('gesturestart', function (event) {

event.preventDefault();

});

既不能双击缩放,也不能双指缩放。

完整代码:

 <script>

     /*禁止ios缩放,双击和双指*/

      window.onload=function () {

        document.addEventListener('touchstart',function (event) {

          if(event.touches.length>1){

            event.preventDefault();

          }

        });

        var lastTouchEnd=0;

        document.addEventListener('touchend',function (event) {

          var now=(new Date()).getTime();

          if(now-lastTouchEnd<=300){

            event.preventDefault();

          }

          lastTouchEnd=now;

        },false);

        document.addEventListener('gesturestart', function (event) {

          event.preventDefault();

        });

      }

    </script>

参考链接:

https://stackoverflow.com/questions/37808180/disable-viewport-zooming-ios-10-safari

解决ios10及以上Safari双击和双指缩放无法禁止的问题的更多相关文章

  1. 完美解决ios10及以上Safari无法禁止缩放的问题

    移动端web缩放有两种: 1.双击缩放: 2.双指手势缩放. 在iOS 10以前,iOS和Android都可以通过一行meta标签来禁止页面缩放 <meta content="widt ...

  2. 在viewPager中双指缩放图片,双击缩放图片,单指拖拽图片

    我们就把这个问题叫做图片查看器吧,它的主要功能有: (项目地址:https://github.com/TZHANHONG/ImageViewer/releases/tag/1.0,里面的MyImage ...

  3. 解决java web中safari浏览器下载后文件中文乱码问题

    解决java web中safari浏览器下载后文件中文乱码问题 String fileName = "测试文件.doc"; String userAgent = request.g ...

  4. 解决ios10以上版本缩放问题

    <script type="text/javascript"> /*解决ios10以上版本缩放问题 20171102*/ window.onload=function ...

  5. 用开源项目PhotoView实现图片的双指缩放和双击放大缩小

    项目地址:https://github.com/chrisbanes/PhotoView 用开源项目有个好处,一是实现简单,二是bug少.那么我们就来说下这个项目能够实现的效果: 1.单个图片的双指缩 ...

  6. ios移动端禁止双指缩放功能

    在实际开发中,我们禁止缩放的实现方式: 1.meta设置: <meta name="viewport"  content="width=device-width,h ...

  7. js实现双指缩放图片 手机端双指缩放图片

    首先引入js文件,需要jq,pinchzoom.js.pinchzoom.js需要在jq环境下使用,可以 <meta name="viewport" content=&quo ...

  8. 微信小程序movable-view移动图片和双指缩放

    先从movable-view开始说起吧. movable-view是小程序自定义的组件.其描述为:"可移动的视图容器,在页面中可以拖拽滑动". 官方文档地址:https://mp. ...

  9. 解决iOS10的Safari下Meta设置user-scalable=no无效的方法

    苹果为了提高Safari中网站的辅助功能,屏蔽了Meta下的user-scalable=no功能.所以在iOS10下面,就算加上user-scalable=no,Safari浏览器也能支持手动缩放. ...

随机推荐

  1. 基础(一):SCSI硬盘与IDE硬盘有什么区别

    硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据.不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏.从整体的 ...

  2. 经典sql题练习50题

    -- 1.查询"01"课程比"02"课程成绩高的学生的信息及课程分数 select a.* ,b.s_score as 01_score,c.s_score a ...

  3. base64和Xxtea的加密和解密

    base64和Xxtea的加密和解密 数据加密是web数据安全的一种方式,前几天拿到一个base64+xxtea加密的数据,现在在这里整理一下使用的过程.首先当然是全网站找解密方法,但是最后的结果不是 ...

  4. 搭建单机版spark

    二.下载软件 JDK,Scala,SBT,Maven 版本信息如下: JDK jdk-7u79-linux-x64.gz Scala scala-2.10.5.tgz 三.解压上述文件并进行环境变量配 ...

  5. Openstack贡献者须知 — OpenPGP/SSH/CLA贡献者协议

    目录 目录 前言 Openstack基金委员会 Openstack贡献者须知 注册Openstack In Launchpad 生成并上传OpenPGP密钥 生成并上传SSH公钥 Join The O ...

  6. hexo next博客之无敌之舒服之美妙之轻松之发布博客(mweb,github自主开发插件)

    文章目录 **前言:** 具体用法 **mweb for mac** 注意 **github插件下载** 个人博客:https://mmmmmm.me 源码:https://github.com/da ...

  7. 力扣算法题—150. Evaluate Reverse Polish Notation

      Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +,  ...

  8. ES6篇

    ES6新特性你了解了多少呢? 珠峰培训 5月17日 ES6新特性 ES6的特性比较多,在 ES5 发布近 6 年(2009-11 至 2015-6)之后才将其标准化.两个发布版本之间时间跨度很大,所以 ...

  9. Pandas重复值处理

    import pandas as pd #生成数据 data1,data2,data3,data4=['a',3],['b',2],['a',3],['c',2] df=pd.DataFrame([d ...

  10. 9-MySQL-Ubuntu-数据表中数据的修改(二)

    数据的修改(update) (1)修改整个字段: update 表名 set 字段1=值1,字段2=值2; (2)修改字段部分数据 update 表名 set 字段1=值1,字段2=值2,... wh ...