移动web相关(一)

<!--禁止自动对符合电话格式的文本的格式化显示-->
<meta name="format-detection" content="telephone=no">
<!--禁止自动对符合地址格式的文本的格式化显示-->
<meta name="format-detection" content="address=no">
<!--视窗宽度指定为设备支持宽度,禁止缩放-->
<meta name="viewport" content="width="device-width",initial-scale=1,user-scalable="no">

性能优化 --- 更快

压缩代码、文件合并、后台直出等方法切实改变响应速度

交互优化 --- 更好用

通过替换方案改变用户感知到的响应速度 结合移动设备特点提供更有针对性更好的体验


tap事件:不是原生事件而是由touchstart\touchmove\touchend结合的混合事件,目的是解决click事件300ms延迟。
点击态:给用户明确的点击反馈,提升用户体验

  • 方案一:使用伪类:active
    缺点:滚动的时候也会触发样式
  • 方案二:
//点击事件带点击态
$el.on('tap',function(e){
    var $target = $(e.target);
    $target.addClass('active');
    setTimeout(function(){
        $target.removeClass('active');
    },150);
});

滚动

全局滚动:滚动条在body节点或更顶层
局部滚动:滚动条在body下的某一个DOM节点上

  • part1:实现弹性滚动效果(iOS和Android的chrome支持)
/*建议:将属性挂在body上可以避免很多奇怪的bug*/
body{-webkit-overflow-scrolling:touch;}
/*局部滚动的DOM节点*/
.scroll-el{overflow:auto;}
  • part2:滚动出界情况(iOS)
    全局滚动:滚动到页面顶部(或底部)时继续向下(向上)滑动,就会出现
    局部滚动:滚动到页面顶部(或底部)时,再继续向下(向上)滑动时,就会出现;滑动底部固定区域【解决方法:SrollFix插件,其原理是滚动时判断是否是从顶部(底部)开始滑动,若是则增加(减去)一个像素;页面的固定区域禁止touchmove默认事件】
  • Android建议只使用全局滚动,因为局部滚动会出现蛋疼的滚动条bug
    流畅滚动的总结
    1.body上加上 -webkit-overflow-scrolling:touch
    2.iOS尽量使用局部滚动
    3.iOS引进ScrollFix避免出界
    4.Android下尽量使用全局滚动
    --1)尽量不用overflow:auto
    --2)使用min-height:100%代替height:100%
    5.iOS下带有滚动条且position:absolute的节点不要设置背景色

定制软键盘样式

  • 配置input节点的type属性
    输入纯数字可以用type="tel"---->数字键盘
    设置type="search"
    用一个form表单包围起来
    在onsubmit事件里阻止默认行为---->带有搜索键的输入键盘
  • pattern属性
    现阶段只支持pattern="[0-9]*"---->纯数字键盘

定制键盘行为(iOS基本支持Android不同情况)

针对的问题:输入英文用户名首字母自动大写的问题
解决:autocapitalize="off"//关闭首字母大写
自动纠错:autocorrect="on"/autocorrect="off"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,250评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,446评论 25 708
  • 文/星杳 我一直走 走过荒无人烟的夜 夜里寒风刺骨大雪纷飞 飞过暗流汹涌的海 海面风平浪静海底暗潮涌动 你说你梦里...
    星杳阅读 323评论 0 2
  • 每天5分钟,解决一个商业问题。欢迎收听《刘润•5分钟商学院》实战篇。 5分钟商学院的同学们,大家周末好! 从上周开...
    王彬成阅读 970评论 0 0
  • 一、简介 延迟加载就是我们真正使用某个对象的时候,这个对象才会被创建出来。而在hibernate中的意思就是只有我...
    yjaal阅读 657评论 0 0