Ttl;dr:,我需要在中缓慢地移动一幅图像,而不需要一个像素一个像素的移动。我需要一些防混叠。。
最近,我的任务是在一个网页中水平地动画一些“云”画。
很容易,我就将图像放入DOM中,并使用CSS3转换,并将其作为jQuery动画的后盾,用于那些还不支持jQuery转换的浏览器。
一切看起来都很好。我看到一些云彩平稳地在页面上移动。
然后,我不断收到设计师的请求,要求减缓down...way的移动速度。
因为浏览器不对DOM对象进行亚像素渲染,所以动画似乎运行在6个FPS。
所以,我把图像拍到画布上进行一些快速测试,并发现它也不会自动进行亚像素渲染。
我的快速画布动画演示 (它不能准确地计时移动,处理它)。-p)
发布于 2011-06-14 23:31:07
对于较旧的浏览器,您可以用动画制作精灵。创建可能的4个版本的图像,每个移动0.25px从前一个左。将它们粘贴在一个精灵中,然后将背景位置动画化.
function moveClouds(n)
{
var v = (n % 4) * 417;
var h = Math.ceil(n / 4);
clouds.style.backgroundPosition = h + " " + v;
}发布于 2011-06-14 23:16:20
这是一个已知的Chrome问题,正如http://code.google.com/p/chromium/issues/detail?id=7508所记录的那样
仍然没有决心或解决办法。
发布于 2011-07-25 12:53:59
你可以在这里做一个黑客,但它很丑。
将画布元素的分辨率设置为高于实际显示大小,然后浏览器对翻译进行反别名。达达,亚像素的铬动画!
https://stackoverflow.com/questions/6350340
复制相似问题