关于这件事还有另一条线索,但没能解决,可能是因为我的问题不太清楚。
只想再试一次,希望我能尽快解决这个问题:
我最近的任务是创建一个单页网站,模拟基本的Flash动画,即滑入和淡入淡出元素。
当我得到一个互动模型时,我遇到了一个大问题——不连贯的动画。这个问题出现在屏幕高于18英寸的Mac中,而不考虑浏览器和低于18英寸的Mac,仅限于FF版本3和更低版本。在个人电脑上,动画几乎完美无瑕。
以下是我的jquery代码,受影响的元素用id md1、md2和md3标记:
$(document).ready(function () {
$('#md1').animate({ top: "-60px" }, 500);
$('#md2').animate({ top: "60px" }, 800);
$('#md3').animate({ left: "60px" }, 1000);
$('.home').fadeTo(3000, 0.8);
$('#bg-img-4').fadeTo(1200, 1);
$('#menu').fadeTo(4000, 1);
$('#copyright').fadeTo(4000, 1);
});
我采用了各种优化方法,包括缓存索引页上受影响的div中的图像,稍后将用户重定向到实际页面,并将动画排队,但没有任何效果。
这真的很让人沮丧,因为我似乎已经用尽了我所知道的所有可用的方法,我只是不能让它在Mac上正常工作。
我有一种直觉,觉得我在准备好文档时编译了太多动画,这导致了速度慢——有人能确认这是不是主要原因,如果有其他方法可以解决这个问题吗?
非常感谢你们的帮助。非常感谢=)
最佳答案
最好的方法是使用CSS转换/动画。
如果某些浏览器不支持它们,那么这样的浏览器对任何类型的动画都不好。
CSS中的转换和动画可以更好地通过本地代码进行优化,因此理论上可能会表现出更平滑(更高的fps)的行为。
从上面的jquery动画开始:
尝试减少复杂元素上的fadeto的数量。
尝试简化样式-减少透明的opacity
或rgba()
用例的数量。
一般来说,DOM元素越少越好。