移动web相关(一)







性能优化 --- 更快

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

交互优化 --- 更好用

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


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"

你可能感兴趣的:(移动web相关(一))