您现在的位置是:网站首页> 编程资料编程资料
HTML5移动端开发遇见的东西移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法 HTML5移动端手机网站开发流程HTML5移动端开发中的Viewport标签及相关CSS用法解析整理HTML5移动端开发的常用触摸事件
2023-10-16
542人已围观
简介 这篇文章主要介绍了HTML5移动端开发遇见的东西,常见的有viewport、强制浏览器全屏、IOS的Web APP模式、可点击元素出现阴影,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
常见的有viewport、强制浏览器全屏、IOS的Web APP模式、可点击元素出现阴影
本文主要讲一些其他的或者实用的优化手段。
1. 弹出数字键盘
安卓跟IOS的表现形式应该不一样,大家可以自己试试。当运用了正则pattern后,就不用关注input的类型了。

2. 调用系统的某些功能

3. 打开原生应用
这种方式叫做URL Scheme,是一种协议,一般用来访问APP或者APP中的某个功能/页面(如唤醒APP后打开指定页面或者使用某些功能)
URL Scheme的基本格式如下:
行为(应用的某个功能/页面)
|
scheme://[path][?query]
| |
应用标识 功能需要的参数
一般是由APP开发者自己定义,比如规定一些参数或者路径让其他开发者来访问,就像上面的例子
注意事项:
- 唤醒APP的条件是你的手机已经安装了该APP
- 某些浏览器会禁用此协议,比如微信内部浏览器(除非开了白名单)

4. 解决active伪类失效
给body注册一个空事件即可
5. 忽略自动识别
当页面上的内容包含了手机号/邮箱等,会自动转换成可点击的链接
比如你有如下代码:
13192733603
但是有些浏览器会识别为手机,并且可以点击拨号
6. 解决input失焦后页面没有回弹

一般出现在IOS设备中的微信内部浏览器,出现的条件为:
- 页面高度过小
- 聚焦时,页面需要往上移动的时候
所以一般input在页面上方或者顶部都不会出现无法回弹
解决办法为,在聚焦时,获取当前滚动条高度,然后失焦时,赋值之前获取的高度:
7. 禁止长按

以上行为可以总结成这几个(每个手机以及浏览器的表现形式不一样):长按图片保存、长按选择文字、长按链接/手机号/邮箱时呼出菜单。
想要禁止这些浏览器的默认行为,可以使用以下CSS:
// 禁止长按图片保存 img { -webkit-touch-callout: none; pointer-events: none; // 像微信浏览器还是无法禁止,加上这行样式即可 } // 禁止长按选择文字 div { -webkit-user-select: none; } // 禁止长按呼出菜单 div { -webkit-touch-callout: none; }8. 滑动不顺畅,粘手
一般出现在IOS设备中,自定义盒子使用了overflow: auto || scroll后出现的情况。
优化代码:
div { -webkit-overflow-scrolling: touch; }9. 屏幕旋转为横屏时,字体大小会变
具体出现的情况不明,有时候有有时候没有,欢迎指出。
优化代码:
* { -webkit-text-size-adjust: 100%; }10.最简单的rem自适应
大家都知道,rem的值是根据根元素的字体大小相对计算的,但是我们每个设备的大小不一样,所以根元素的字体大小要动态设置
html { font-size: calc(100vw / 3.75); } body { font-size: .14rem; }效果如下:

11. 滑动穿透
当你想在出现遮罩的时候,锁住用户的滚动行为,你可以这么做。
假设HTML结构如下:
我是弹框
CSS样式如下:
.mask { position: fixed; top: 0; left: 0; display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; background-color: rgba($color: #333, $alpha: .6); .content { padding: 20px; background-color: #fff; width: 300px; } }效果如下:

可以看到,当在遮罩上滑动的时候,是会穿透到父节点的,最简单的办法就是阻住默认行为:
document.querySelector(".mask").addEventListener("touchmove", event => { event.preventDefault(); });如果在vue中,你可以这么写:
如果.content也有滚动条,那么只要阻止遮罩本身就行:
document.querySelector(".mask").addEventListener("touchmove", event => { if (event.target.classList.contains("mask")) event.preventDefault(); });或者:
这样,当出现遮罩的时候用户的滑动就会被锁住啦
相关内容
- 基于 HTML5 WebGL 实现的垃圾分类系统HTML5 WebGL 实现民航客机飞行监控系统基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码基于 HTML5 WebGL 实现的医疗物流系统
- HTML5实现的震撼3D焦点图动画的示例代码HTML5自定义元素播放焦点图动画的实现html4和html5区别之如何在一个input上添加焦点实现代码
- HTML5 Canvas 破碎重组的视频特效的示例代码前端canvas动画如何转成mp4视频的方法canvas像素点操作之视频绿幕抠图video结合canvas实现视频在线截图功能canvas绘制视频封面的方法详解基于canvas的视频遮罩插件canvas与html5实现视频截图功能示例Canvas获取视频第一帧缩略图的实现
- 前端canvas水印快速制作(附完整代码)前端水印的简单实现代码示例手摸手教你用canvas实现给图片添加平铺水印的实现html5 canvas实现给图片添加平铺水印canvas 下载二维码和图片加水印的方法前端使用canvas生成盲水印的加密解密的实现
- canvas实现圆绘制的示例代码利用 Canvas实现绘画一个未闭合的带进度条的圆环使用html5 canvas绘制圆环动效canvas绘制圆角头像的实现方法详解canvas在圆弧周围绘制文本的两种写法详解html2canvas截图不能截取圆角图片的解决方案canvas实现圆形进度条动画的示例代码html5 canvas绘制矩形和圆形的实例代码通过HTML5 Canvas API绘制弧线和圆形的教程HTML5 Canvas中绘制椭圆的4种方法HTML5 Canvas绘制圆点虚线实例
- Html5 Canvas 实现一个“刮刮乐”游戏
- 疯狂猜车标 141-160(关)答案_手机游戏_游戏攻略_
- 我叫MT 登录送紫卡飞龙骑士活动详细介绍_手机游戏_游戏攻略_
- 疯狂猜车标 161-180(关)答案_手机游戏_游戏攻略_
- 天天飞车葫芦侠修改器12月27日辅助教程攻略 刷金币刷分心得_手机游戏_游戏攻略_
