jQuery针对iPad进行了优化?

时间:2011-10-13 13:55:51

标签: jquery

我正在开发一个适用于iPad的网络应用程序,我一直使用的大多数效果来自jQuery。虽然不是所有的动画都很流畅,这就是为什么我想知道是否有一个jQuery版本可以在iPad上运行更流畅?

4 个答案:

答案 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,那么还有以下内容:

http://www.jqmobi.com/

答案 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