移动web前端开发小结

注意:Chrome模拟手机的显示的界面是有偏差的,强烈建议必定要在真机测试本身的移动端页面(以移动端页面为准)。android

 

1.页面高度渲染错误,页面的高度是否包含了导航,(华为手机就是恰恰有底部菜单)ios

设置窗口高度document.documentElement.style.height = window.innerHeight + 'px'; es6


2.移动端背景图缩放固定。web

采用fixed布局,zoom属性为1。浏览器

 

3.文本行高偏上不对齐。iphone

设置line-height设置成normal。不要写死行高值。ide

 

4.文件上传没法唤醒文件。工具

部分手机没法兼容input file中accept等属性。移除便可。布局

 

Iphone的兼容问题:测试

1.:active伪类不生效

阻止touchstart默认事件。(若是没有什么手势事件的需求的话,最好所有禁止手势事件)

 

2.input=“search”没法触发输入法。

须要<form>标签包起来才能触发。

 

3.禁用长按事件。

切记不要使用用user-select:none;属性,会致使没法iphone没法输入。

 

4.webview回弹效果。

若是页面是全屏,不超过可视高度的话,建议禁用touchmove事件。

若是页面不是全屏,超过可视高度的话,就不要禁用touchmove事件。

 

5.ios回退不刷新

var isPageHide = false
window.addEventListener("pageshow", function() {
    if (isPageHide) {
        window.location.reload()
    }
})
window.addEventListener("pagehide", function() {
    isPageHide = true
})

 

 6.移动兼容性测试。

使用ie浏览器来测试兼容语法。(vconsole这个测试工具检测不出来,555)

PS:IE11浏览器的开发者工具能够排查出不兼容的es6语法,只要IE11能运行,android4.x或者ios9以上的浏览器均可以运行。

 

 

PS:虽然有办法阻挡X5内核(QQ浏览器内核)的“网页有XXX提供”的这些信息,可是并无真正阻挡iphone的回弹效果。拖拽仍是会回弹。

相关文章
相关标签/搜索