【移动WEB开发】常用技巧
*Meta标签
//强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏幕放大浏览; <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" /> //iphone设备中的safari私有meta标签,允许全屏模式浏览; <meta content="yes" name="apple-mobile-web-app-capable" /> //iphone的私有标签,它指定的iphone中safari顶端的状态条的样式; <meta content="black" name="apple-mobile-web-app-status-bar-style" /> //告诉设备忽略将页面中的数字识别为电话号码; <meta content="telephone=no" name="format-detection" />
*关闭识别后添加链接
关闭识别后添加链接 <a href="tel:12345654321">打电话给我</a> <a href="sms:12345654321">发短信</a> <span onclick="location.href=‘tel:122‘"></span>
*使用HTML5标签
使用html5标签增强语义,提升体验
*放弃float属性
遇到内容排列排列显示的布局放弃float,使用display、webkit-box自适应布局
*利用CSS3边框背景属性
使用-webkit-border-image代替复杂的(圆角+内发光+高光)
*块级化a标签
将每条数据都放在一个a标签中提升用户体验,尽可能的保证用户的可点击区域较大。
*去除Android邮箱地址的识别
<meta content="email=no" name="format-detection" />
*去除iOS和Android中的输入URL的控件条
setTimeout(scrollTo,0,0,0) 需要放在window.onload里,当前文档的内容高度必须是高于窗口的高度。
*用户旋转设备
禁止开发者阻止浏览器的orientationchange事件
*用户是通过主屏启动你的webapp
IOS 从主屏启动时navigator.standalone为true,从站点为false
Android 无
*关闭iOS中键盘自动大写
autocapitalize="off"
*iOS中如何彻底禁止用户在新窗口打开页面
IOS -webkit-touch-callout:none;
Android 无效。
*iOS中禁止用户保存图片/复制图片
-webkit-touch-callout:none
*iOS中如何禁止用户选中文字
-webkit-user-select:none
*iOS中如何获取滚动条的值
window.scrollY和window.scrollX
*解决盒子边框溢出
宽度100%时边框溢出,-webkit-box-sizing:border-box;
*Android 2.0以下圆角问题
必须加-webkit-
*android页面自适应
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0;" />
*如何解决iOS 4.3版本中safari对页面中5位数字的自动识别和自动添加样式
<meta name="format-detection" content="telphone=no" />
*样式设置
<link rel=”apple-touch-startup-image” href=”startup.png” /> // 设置开始页面图片 <link rel=”apple-touch-icon” href=”iphon_tetris_icon.png”/> // 在设置书签的时候可以显示好看的图标 <link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css" /> // 肖像模式样式 <link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css" /> // 风景模式样式 <style media="all and (orientation:portrait)"></style> //竖屏时使用的样式 <style media="all and (orientation:landscape)"></style> //横屏时使用的样式
*事件
/ 手势事件
touchstart //当手指接触屏幕时触发
touchmove //当已经接触屏幕的手指开始移动后触发
touchend //当手指离开屏幕时触发
touchcancel
// 触摸事件
gesturestart //当两个手指接触屏幕时触发
gesturechange //当两个手指接触屏幕后开始移动时触发
gestureend
// 屏幕旋转事件
onorientationchange
// 检测触摸屏幕的手指何时改变方向
orientationchange
// touch事件支持的相关属性
touches
targetTouches
changedTouches
clientX // X coordinate of touch relative to the viewport (excludes scroll offset)
clientY // Y coordinate of touch relative to the viewport (excludes scroll offset)
screenX // Relative to the screen
screenY // Relative to the screen
pageX // Relative to the full page (includes scrolling)
pageY // Relative to the full page (includes scrolling)
target // Node the touch event originated from
identifier // An identifying number, unique to each touch event
//屏幕旋转事件:onorientationchange
window.orientation //0 肖像模式,-90 左旋,90 右旋,180 风景模式
*自动大写与自动修正
<input type="text" autocapitalize="off" autocorrect="off" />
*阻止旋转屏幕时自动调整字体大小
html, body, form, fieldset, p, div, h1, h2, h3, h4, h5, h6 {-webkit-text-size-adjust:none;}
*缩小图片
@media screen and (max-device-width: 480px){
img{max-width:100%;height:auto;}
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。