[OpenLayers-Dev] Harware accelerated CSS3 animations for iOS
Gregers Gram Rygg
gregersrygg at gmail.com
Fri Apr 8 18:52:23 EDT 2011
Hi,
I've been playing around with latest version of OpenLayers from svn.
Great work on the mobile version :)
Found a little trick to vastly improve the pinch-zoom performance on
iPhone/iPad:
img.olTileImage {
-webkit-transform: translate3d(0, 0, 0);
}
For some strange reason translate3d is hardware accelerated in Mobile
Safari while the regular translate is not. I first tried to rewrite
the PinchZoom control to use translate3d with 0px in the z-axis, but
that made the pinch zoom to behave differently. Turns out that just
having translate3d(0,0,0) on the tiles combined with a scripted
translate in the PinchZoom control is enough to trigger hardware
rendering.
Not sure how this affects Android and other webkit-browsers. Briefly
tested in Chrome 10, 11, 12, Safari and on a HTC Desire. Have had
Safari on my iPad crash a few times lately, but not sure if it's
related to the translate3d or not.
Thomas Fuchs has written a bit more in-depth research on how to make
smooth animations for iOS:
http://mir.aculo.us/2010/06/04/making-an-ipad-html5-app-making-it-really-fast/
Is it ok if I include the style rule above in style.css, or shoud we
do some device/feature detection and add a custom css-class to apply
the 3d-hack?
Regards,
Gregers
More information about the Dev
mailing list