移动开发知识库

2016年7月及以前

tap 穿透问题

问题描述

上层元素绑定 tap 事件,下层绑定 click 事件(或者是 a 链接). 点击上层元素时, 会发生穿透, 同时触发tap 和 click事件.

解决办法

事件绑定都用 tap 或者都用 click 事件即可避免

图片下边距

问题描述

图片宽高 100% 即全屏时仍会出现下方有空白, 即有下边距

解决办法

img 标签默认边距导致的. 图片样式设置 float: left 或者清除默认边距margin: 0.

视频音频无法自动播放

问题描述

在某些移动端浏览器环境中, audiovideo 设置 autoplay 属性无效, js 控制播放也无效.是由于不同浏览器的默认设置问题,不属于 bug.出于费流量等会导致用户困扰的原因, 一些webview下不允许自动播放或者js控制播放. 必须由用户行为触发播放.

解决办法

因此, 可以给 document 绑定 ontouchstart 事件播放. 或者查询相关接口, 比如微信 webview 可以在调用 jssdk的 ready 方法回调中执行自动播放

flex 兼容性问题

问题描述

flex 属于较新的 css3 语法, 某些 webview 中不生效

解决办法

使用 box-flex 代替或者不使用

touchend 移出仍然触发

问题描述

某元素上绑定 touchend 事件, 只要是从此元素 touchstart 即使移出该元素范围仍然触发该元素 touchend 事件.

解决办法

使用 tap 代替 click 而不是 touchend

行内元素之间有空格

问题描述

行内元素之间即使设置了外边距为 0, 依然有空格的间隔. 是由于写 dom 元素的时候行内元素换行所致

解决办法

代码编写或格式化时, 行内元素不换行

animation css3 动画不生效

问题描述

设置了 animation 动画, chrome 模拟调试能正常运行. 手机端不生效.

解决办法

添加 -webkit- 厂商前缀, 要注意的是, animation 属性要分开写, 不写简写, 简写一些浏览器即使添加 -webkit- 也不生效

苹果 transform rotate 3d 风车转动问题

问题描述

使用 transform rotate 3d 做风车转动效果时, 风车转到一半又转回来. 安卓正常转360度

解决办法

平面转动 使用 rotate 2d 安卓苹果都能正常

微信文章阅读原文链接打不开

问题描述

微信文章阅读原文链接打不开, 因为参数被加上了#开头的参数显示来源

解决办法

用代码去除带 # 的参数