Android 4.4 vs iOS上CSS3转换缓慢
Slow CSS3 transitions on Android 4.4 vs iOS
我使用基于关键帧的CSS3动画在div之间滑动,贝塞尔曲线为(0.10,0.70,0.10,1),持续时间为400毫秒
Android上的性能(在HTC One M8和S4上使用原生4.4网页视图和基于blink的Crosswalk进行测试)非常不稳定,帧率非常低。从iOS 4s到iOS 5s的性能都非常完美,接近原生性能。
有人可以解释什么可能导致这和如何纠正它的一些建议,它是否需要使用基于javascript的动画解决方案,如VelocityJS?
如果这个问题有点模糊,我很抱歉,但我不认为我在这个问题上添加了大量的CSS关键帧规则会对任何人有帮助,所以我省略了它。
下面是一个简单的例子来说明我所说的
http://jsfiddle.net/hu69H/(在台式机上运行良好,但不是很完美,除了iOS,它在移动设备上根本没有性能)
下面是执行滑动的逻辑部分的代码片段:
var $ = function (id) {
"use strict";
return document.getElementById(id);
},
slideOpts = {
sl: ['slin', 'slout'],
sr: ['srin', 'srout'],
popin: ['popin', 'noanim'],
popout: ['noanim', 'popout'],
noanim: ['noanim', 'noanim']
},
function Slide(slideType, vin, vout, callback) {
var vIn = $(vin),
vOut = $(vout),
onAnimationEnd = function () {
vOut.classList.add('hidden');
vIn.classList.remove(slideOpts[slideType][0]);
vOut.classList.remove(slideOpts[slideType][1]);
vOut.removeEventListener('webkitAnimationEnd', onAnimationEnd, false);
vOut.removeEventListener('animationend', onAnimationEnd);
};
if (slideType == 'noanim'){
vIn.classList.remove('hidden');
vOut.classList.add('hidden');
} else {
vOut.addEventListener('webkitAnimationEnd', onAnimationEnd, false);
vOut.addEventListener('animationend', onAnimationEnd);
if (callback && typeof (callback) === 'function') {
callback();
}
vIn.classList.remove('hidden');
vIn.classList.add(slideOpts[slideType][0]);
vOut.classList.add(slideOpts[slideType][1]);
}
你们有复制这个的样品箱吗?这将有助于找出根本原因。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何使用json将对象列表从java转换为javascript
- 对iPad上的点击事件反应缓慢
- 偶尔结结巴巴地说“;堆叠的”;translate()上的转换(v4.0.0-alpha40)
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 在Javascript中转换对象数组
- 将数字转换为一定数量的硬币
- 将纯文本URL转换为可单击链接
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- Ajax请求文档就绪会导致jquery加载缓慢
- 如何将TypeScript对象转换为普通对象
- 检测个位数整数时正在转换毫秒
- 最大高度转换不;不工作,工作缓慢
- 加快了缓慢的jQuery Mobile页面转换 - 为什么
- Gulp babel es2015 转换非常缓慢
- Android 4.4 vs iOS上CSS3转换缓慢
- JavaScript幻灯片上图像之间的转换缓慢?(特别是使用chrome)