前端开发规范整理之移动端优化

click的300ms延迟响应

延迟是由双击缩放导致的,当用户点击一次屏幕之后,浏览器并不能立刻判断用户是确实要打开这个链接,还是想要双击操作。因此,移动端浏览器就等待了300ms,以判断用户是否再次点击了屏幕。

问题:300ms的延迟无法接受!怎么解决?

「 禁止缩放 」和「 width=device-width」方案并不完美。

简单通用方案:fastClick。 FastClick是专为解决移动端浏览器300ms点击延迟问题的一个轻量级库。

FastClick在检测到touchend事件的时候,会通过DOM自定义事件立即触发一个模拟click事件,并把浏览器在300ms之后真正触发的click事件阻止掉。

//FastClick 的使用方法非常简单,在window load 事件之后,
//在<body>上调用FassClick.attach()即可;
window.addEventListener("load",function(){
  FassClick.attach(document.body);
},false)
//纯js版本
if ('addEventListener' in document) {
    document.addEventListener('DOMContentLoaded', function() {
        FastClick.attach(document.body);
    }, false);
}

//jquery版本
$(function() {
    FastClick.attach(document.body);
});

//模版方式
var attachFastClick = require('fastclick');
attachFastClick(document.body);

快速回弹滚动

如果想要为某个元素拥有Native般的滚动效果,可以这样操作:

.element{
	overflow:auto;/* auto | scroll */
  -webkit-overflow-scrolling:touch;
}

清除输入框内阴影

在IOS上,输入框默认有内部阴影,可如下操作进行清除。

input,
textarea{
	border:0;/*方法1*/
  -webkit-appearance:none; /*方法2*/
}

电话号码识别

ios safari(安卓或者其它浏览器不会)会自动识别看起来像电话号码的数字,将其处理为电话号码链接。

//关闭电话号码识别
 <meta  name="format-detection" content="telephone=no" />
  
//开启电话功能
<a href="tel:123456">186***891234</a>

//开启短信功能
<a href="sms:123456">123456</a>

邮箱地址的识别

浏览器会自定识别看起来像邮箱地址的字符串,不论你有没有加上邮箱链接,当你在这个字符串上长按,会弹出发邮件的提示。

//关闭邮箱地址识别
<meta  name="format-detection" content="email=no" />
  
//开启邮件发送
<a href="mailto:sample@fly63.com">send mail</a>

指定ios的safari顶端状态条的样式

<meta content="black" name="apple-mobile-web-app-status-bar-style">
  //可选default、black、black-translucent

获取滚动条的值

pc端滚动条通过document.scrollTop和document.scrollLeft获得。但在ios中并没有滚动条的概念,所以仅能通过windows.scroll获取。

window.scrollY
window.scrollX
(移动端优化)前端开发规范整理

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/surface/28902.html

发表评论

登录后才能评论