阻止手机浏览器双击放大的方法


切图网在为一个项目提供h5微信上使用的小游戏开发的时候,设计到快速点击按钮来发电的游戏规则,所以用户需要不断的点击按钮来发更多的电量,这不断的点击会触发双击的动作,浏览器就放大了。为了这个问题百度了很多资料,下面是主流的解决方案。

-----------------

现在的手机或平板电脑等移动设备上的浏览器默认都有双击放大的设置,怎么让双击不放大?

在Mobile页面上有提供viewport这个meta,可以用它来设置缩放。 但是在使用viewport之前要把页面的文档类型改成Mobile类型。 通常的页面DTD都是XHTML或者简单的HTML5声明,移动设备要用下面这个声明。

代码如下:

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">

设置了DTD之后就可以使用viewport使页面禁止缩放了。 通常把user-scalable设置为0来关闭用户对页面视图缩放的行为。

代码如下:

<meta name="viewport" content="user-scalable=0" />

但是为了更好的兼容,我们会使用完整的viewport设置。

代码如下:

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

如果需要更详细的关于viewport的资料可以参考MDN

https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag

貌似DTD只声明成HTML5就可以了,下面加上viewport的标签

现在的手机或平板电脑等移动设备上的浏览器默认都有双击放大的设置,怎么让双击不放大?

在Mobile页面上有提供viewport这个meta,可以用它来设置缩放。 但是在使用viewport之前要把页面的文档类型改成Mobile类型。 通常的页面DTD都是XHTML或者简单的HTML5声明,移动设备要用下面这个声明。

代码如下:

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">

设置了DTD之后就可以使用viewport使页面禁止缩放了。 通常把user-scalable设置为0来关闭用户对页面视图缩放的行为。

代码如下:

<meta name="viewport" content="user-scalable=0" />

但是为了更好的兼容,我们会使用完整的viewport设置。

代码如下:

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

如果需要更详细的关于viewport的资料可以参考MDN

https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag

貌似DTD只声明成HTML5就可以了,下面加上viewport的标签

----------------------------

但是这个没有解决问题,因为我们采用的是viewport定宽的方式,而 viewport定宽会导致android下浏览器 禁止缩放的属性失效,所以上面的方法对这个项目无效,最后通过一个css代码解决问题,就是把按钮尽量做大到占满整个屏幕,因为我们发现,当元素很小的时 候,双击这个元素,会导致浏览器放大,但是当这个元素占据了整个屏幕的宽度的时候,双击这个元素,不会导致放大页面,所以这个问题得以临时解决。如果你有 更好的方法,可以与我们一起交流!

切图网长期致力于h5、响应式等web前端开发技术研究,关注用户体验,如果你对此感兴趣,就加我们公众微信:qietuwang

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Android Studio中双击放大图片需要使用ImageView组件,并且为其设置点击事件监听器。在该监听器中,通过获取ImageView的当前大小并计算新的放大比例,将放大后的图片设置给ImageView即可实现双击放大图片的功能。 首先,在布局文件中添加一个ImageView组件,并设置其布局参数和初始图片资源: ```xml <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/image" android:scaleType="center"/> ``` 接下来,在Activity中获取ImageView并设置双击事件监听器: ```java ImageView imageView = findViewById(R.id.imageView); imageView.setOnClickListener(new View.OnClickListener() { private long lastClickTime = 0; @Override public void onClick(View v) { long currentTime = System.currentTimeMillis(); if (currentTime - lastClickTime < 300) { // 判断两次点击的时间间隔是否小于300ms zoomImage((ImageView) v); } lastClickTime = currentTime; } }); // 放大图片的方法 private void zoomImage(ImageView imageView) { // 获取ImageView的当前大小 int width = imageView.getWidth(); int height = imageView.getHeight(); // 计算新的放大比例 float scale = 1.5f; // 可根据实际需求调整放大倍数 int newWidth = (int) (width * scale); int newHeight = (int) (height * scale); // 设置放大后的图片给ImageView imageView.setLayoutParams(new LinearLayout.LayoutParams(newWidth, newHeight)); } ``` 在双击事件监听器中,通过判断两次点击的时间间隔是否小于300毫秒来确定是否触发双击放大图片的操作。若满足条件,则调用zoomImage方法进行放大操作。zoomImage方法中通过获取ImageView的当前大小,并计算新的放大比例,最后将放大后的图片设置给ImageView,从而实现双击放大图片的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值