博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
禁止移动端safari浏览器双击放大事件
阅读量:4980 次
发布时间:2019-06-12

本文共 1189 字,大约阅读时间需要 3 分钟。

自己在一个微信项目优化过程遇到一个问题,所以记录下来。废话不说,下面进入正题。

1.添加meta便签

首先解决移动端浏览器放大问题一般是添加一个meta便签,防止用户手动放大网页问题。

该meta标签的作用是让当前viewport的宽度等于设备的宽度,同时不允许用户手动缩放。也许允不允许用户缩放不同的网站有不同的要求,但让viewport的宽度等于设备的宽度,这个应该是大家都想要的效果,如果你不这样的设定的话,那就会使用那个比屏幕宽的默认viewport,也就是说会出现横向滚动条。

width:

控制 viewport 的大小,可以指定的一个值或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。

height:

和 width 相对应,指定高度。

initial-scale:

初始缩放。即页面初始缩放程度。这是一个浮点值,是页面大小的一个乘数。例如,如果你设置初始缩放为“1.0”,如果你设置为“2.0”,那么这个页面就会放大为2倍。

maximum-scale:

最大缩放。即允许的最大缩放程度。这也是一个浮点值,用以指出页面大小与屏幕大小相比的最大乘数。例如,如果你将这个值设置为“2.0”,那么这个页面最多能放大2倍。

user-scalable:

用户调整缩放。即用户是否能改变页面缩放程度。如果设置为yes则是允许用户对其进行改变,反之为no。默认值是yes。如果你将其设置为no,那么minimum-scale 和 maximum-scale都将被忽略,因为根本不可能缩放。

以上设置完毕之后,在一般浏览器上已经实现了阻止用户手动放大页面。但是在ios safari浏览器上进行测试,发现双击页面,页面还是会放大,那么我们进行下一步的设置。

 

2.阻止click事件的触发

我们认识的click事件在移动端浏览器其实是默认完整touchstart-touchend这两个事件的触发,只要阻止其中的一个事件触发就能阻止click事件,那么有人会说为什么不直接禁止掉click事件的触发?其实如果你没有点击的事件的需求的话,

完全可以这么做。但是一般的页面都还是需要点击的事件触发的。那么在这里,我们的思路可以用touchstart事件来代替click事件来进行点击事件的触发,只要阻止touchend事件的默认事件就可以的。

$('body').on('touchend',function(e) {            e.preventDefault();        });

这样就可以满足点击事件的触发,又可以阻止在ios safari浏览器出现页面双击放大。  

 

  

转载于:https://www.cnblogs.com/dtbutterfly/p/6008178.html

你可能感兴趣的文章
【翻译】自定义 UIViewController Transitions
查看>>
sql不同表相同的CID qty2替换qt1数量
查看>>
多线程备忘
查看>>
水波形图片切换
查看>>
Javascript的console.log()用法
查看>>
【知识向】——计算机基础知识总结及相关
查看>>
【代码笔记】iOS-只让textField使用键盘通知
查看>>
过滤器
查看>>
trie-[HNOI2004]L语言
查看>>
实验三 网际协议IP 实验报告
查看>>
数据库1
查看>>
Lodop打印如何隐藏table某一列
查看>>
MongoDB下载安装
查看>>
python之上下文管理、redis的发布订阅、rabbitmq
查看>>
Mac Mini Server安装Centos6.5
查看>>
House of hello恶搞凯莉迷你包
查看>>
查看文件权限修改时间
查看>>
Math Date
查看>>
TCP/IP协议 计算机间的通讯,传输、socket 传输通道
查看>>
Android 将取代 Ubuntu,做为个人桌面操作系统
查看>>