我正在开发一个适用于iPad的网络应用程序,我一直使用的大多数效果来自jQuery。虽然不是所有的动画都很流畅,这就是为什么我想知道是否有一个jQuery版本可以在iPad上运行更流畅?
答案 0 :(得分:4)
有jQuery mobile:http://jquerymobile.com/
另外,CSS3动画根据AndreasAL的评论。尽可能使用这些而不是JavaScript。
有关'正常'(非移动)jQuery后备的CSS3动画的实用文章;应该适用于您的场景:http://addyosmani.com/blog/css3transitions-jquery/但是,请注意,许多移动设备的缓存大小限制超出了“普通”jQuery。不确定iPad。
[更新如下]
我很久以前就遇到过Zepto.js,但在有人碰到它之前忘记了这个问题。在许多情况下,Zepto.js是基于移动jQuery的应用程序的直接替代品。它在移动设备之间的兼容性有限(实际上适用于webkit,iOS和Android使用的默认浏览器),但我不会依赖桌面用户。您可以使用条件预加载器(require.js?)来加载桌面的jQuery和移动的Zepto。
最坏的情况,请放入,看看它是否适合您的需要;语法是jQuery兼容的,因此您不需要修改自定义代码只是为了查看它是否有效。
[进一步更新]
如果您正在进行用户代理检测,或者这只适用于iOS和Android,那么还有以下内容:
答案 1 :(得分:1)
尝试使用针对硬动画效果优化的缓动jquery插件,并为您提供流畅的动画效果
请参阅here
答案 2 :(得分:1)
您可能想尝试降低动画的刷新率,您可以这样做:
//animate memory hog fix
jQuery.fx.prototype.custom = function(from, to, unit) {
this.startTime = now();
this.start = from;
this.end = to;
this.unit = unit || this.unit || "px";
this.now = this.start;
this.pos = this.state = 0;
var self = this;
function t(gotoEnd) {
return self.step(gotoEnd);
}
t.elem = this.elem;
if (t() && jQuery.timers.push(t) && !jQuery.fx.prototype.timerId) {
jQuery.fx.prototype.timerId = setInterval(jQuery.fx.tick, 75);
}
}
将最后一行的75改为你想要的任何东西。你也要小心你的动画,一次尝试做一件事。不透明度总是一种记忆力,所以尽量用幻灯片效果代替。
答案 3 :(得分:1)
我正在使用Ben Barnett的jQuery Animate Enhanced Plugin